sprockets-browserify 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1278) hide show
  1. checksums.yaml +14 -6
  2. data/lib/sprockets/browserify.rb +7 -3
  3. data/node_modules/browserify/README.markdown +366 -107
  4. data/node_modules/browserify/{node_modules/resolve/test/resolver/baz/doom.js → _empty.js} +0 -0
  5. data/node_modules/browserify/bin/advanced.txt +36 -0
  6. data/node_modules/browserify/bin/args.js +116 -0
  7. data/node_modules/browserify/bin/cmd.js +56 -145
  8. data/node_modules/browserify/bin/usage.txt +32 -0
  9. data/node_modules/browserify/example/api/browser/bar.js +1 -0
  10. data/node_modules/browserify/example/api/browser/foo.js +5 -0
  11. data/node_modules/browserify/example/api/browser/main.js +2 -0
  12. data/node_modules/browserify/example/api/build.js +4 -0
  13. data/node_modules/browserify/example/multiple_bundles/beep.js +2 -0
  14. data/node_modules/browserify/example/multiple_bundles/boop.js +2 -0
  15. data/node_modules/browserify/example/multiple_bundles/build.sh +4 -0
  16. data/node_modules/browserify/example/multiple_bundles/robot.js +1 -0
  17. data/node_modules/browserify/example/multiple_bundles/static/beep.html +2 -0
  18. data/node_modules/browserify/example/multiple_bundles/static/beep.js +6 -0
  19. data/node_modules/browserify/example/multiple_bundles/static/boop.html +2 -0
  20. data/node_modules/browserify/example/multiple_bundles/static/boop.js +6 -0
  21. data/node_modules/browserify/example/multiple_bundles/static/common.js +3 -0
  22. data/node_modules/browserify/example/source_maps/build.js +10 -0
  23. data/node_modules/browserify/example/source_maps/build.sh +4 -0
  24. data/node_modules/browserify/example/source_maps/index.html +11 -0
  25. data/node_modules/browserify/example/source_maps/js/foo.js +7 -0
  26. data/node_modules/browserify/example/source_maps/js/main.js +4 -0
  27. data/node_modules/browserify/example/source_maps/js/wunder/bar.js +8 -0
  28. data/node_modules/browserify/index.js +319 -156
  29. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/LICENSE.APACHE2 +0 -0
  30. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/LICENSE.MIT +0 -0
  31. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/examples/all_docs.js +0 -0
  32. data/node_modules/browserify/node_modules/JSONStream/index.js +191 -0
  33. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/node_modules/jsonparse/LICENSE +0 -0
  34. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/node_modules/jsonparse/README.markdown +0 -0
  35. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/node_modules/jsonparse/bench.js +0 -0
  36. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/node_modules/jsonparse/examples/twitterfeed.js +0 -0
  37. data/node_modules/browserify/node_modules/JSONStream/node_modules/jsonparse/jsonparse.js +401 -0
  38. data/node_modules/browserify/node_modules/JSONStream/node_modules/jsonparse/package.json +34 -0
  39. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/node_modules/jsonparse/samplejson/basic.json +0 -0
  40. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/node_modules/jsonparse/samplejson/basic2.json +0 -0
  41. data/node_modules/browserify/node_modules/JSONStream/node_modules/jsonparse/test/boundary.js +110 -0
  42. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/node_modules/jsonparse/test/primitives.js +0 -0
  43. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/node_modules/jsonparse/test/utf8.js +0 -0
  44. data/node_modules/browserify/node_modules/JSONStream/package.json +36 -0
  45. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/readme.markdown +0 -0
  46. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/bool.js +0 -0
  47. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/destroy_missing.js +0 -0
  48. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/empty.js +0 -0
  49. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/fixtures/all_npm.json +0 -0
  50. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/fn.js +0 -0
  51. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/multiple_objects.js +0 -0
  52. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/multiple_objects_error.js +0 -0
  53. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/parsejson.js +0 -0
  54. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/stringify.js +0 -0
  55. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/stringify_object.js +0 -0
  56. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/test.js +0 -0
  57. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/test2.js +0 -0
  58. data/node_modules/{JSONStream → browserify/node_modules/JSONStream}/test/two-ways.js +0 -0
  59. data/node_modules/browserify/node_modules/{resolve → browser-pack}/LICENSE +0 -0
  60. data/node_modules/browserify/node_modules/browser-pack/cmd.js +4 -0
  61. data/node_modules/browserify/node_modules/browser-pack/example/input.json +13 -0
  62. data/node_modules/browserify/node_modules/browser-pack/example/output.js +1 -0
  63. data/node_modules/browserify/node_modules/browser-pack/example/sourcemap/input.json +15 -0
  64. data/node_modules/browserify/node_modules/browser-pack/example/sourcemap/output.js +6 -0
  65. data/node_modules/browserify/node_modules/browser-pack/index.js +79 -0
  66. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/LICENSE +23 -0
  67. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/README.md +111 -0
  68. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/example/two-files-short.js +26 -0
  69. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/example/two-files.js +47 -0
  70. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/index.js +97 -0
  71. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/LICENSE +23 -0
  72. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/README.md +85 -0
  73. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/example/comment-to-json.js +15 -0
  74. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/index.js +89 -0
  75. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/package.json +33 -0
  76. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/test/comment-regex.js +25 -0
  77. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/test/convert-source-map.js +129 -0
  78. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/LICENSE +23 -0
  79. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/README.md +88 -0
  80. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/example/foo-bar.js +8 -0
  81. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/index.js +127 -0
  82. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/CHANGELOG.md +58 -0
  83. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/LICENSE +0 -0
  84. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/Makefile.dryice.js +166 -0
  85. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/README.md +347 -0
  86. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/build/assert-shim.js +0 -0
  87. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/build/mini-require.js +0 -0
  88. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  89. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/build/prefix-utils.jsm +18 -0
  90. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/build/suffix-browser.js +0 -0
  91. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  92. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/build/suffix-utils.jsm +21 -0
  93. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/build/test-prefix.js +0 -0
  94. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/build/test-suffix.js +0 -0
  95. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/lib/source-map/array-set.js +96 -0
  96. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/lib/source-map/base64-vlq.js +0 -0
  97. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/lib/source-map/base64.js +0 -0
  98. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/lib/source-map/binary-search.js +0 -0
  99. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/lib/source-map/source-map-consumer.js +426 -0
  100. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/lib/source-map/source-map-generator.js +381 -0
  101. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/lib/source-map/source-node.js +353 -0
  102. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/lib/source-map/util.js +91 -0
  103. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/lib/source-map.js +0 -0
  104. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/node_modules/amdefine/LICENSE +0 -0
  105. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/node_modules/amdefine/README.md +119 -0
  106. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  107. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/node_modules/amdefine/package.json +33 -0
  108. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/package.json +74 -0
  109. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/test/run-tests.js +73 -0
  110. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/test/source-map/test-api.js +0 -0
  111. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/test/source-map/test-array-set.js +0 -0
  112. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/test/source-map/test-base64-vlq.js +0 -0
  113. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/test/source-map/test-base64.js +0 -0
  114. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/test/source-map/test-binary-search.js +0 -0
  115. data/node_modules/{module-deps/node_modules/detective/node_modules/escodegen → browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map}/node_modules/source-map/test/source-map/test-dog-fooding.js +0 -0
  116. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/test/source-map/test-source-map-consumer.js +291 -0
  117. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/test/source-map/test-source-map-generator.js +391 -0
  118. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/test/source-map/test-source-node.js +282 -0
  119. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/test/source-map/util.js +152 -0
  120. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/package.json +42 -0
  121. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/test/inline-source-map.js +247 -0
  122. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/test/source-content.js +129 -0
  123. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/LICENSE +23 -0
  124. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/MOZILLA_LICENSE +28 -0
  125. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/README.md +35 -0
  126. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/base64-vlq.js +108 -0
  127. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/base64.js +35 -0
  128. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/example/one-to-one-mappings.js +5 -0
  129. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/index.js +82 -0
  130. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/package.json +39 -0
  131. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/test/parse-base64vlq-mappings.js +72 -0
  132. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/package.json +45 -0
  133. data/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/test/combine-source-map.js +143 -0
  134. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/README.html +1012 -0
  135. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/README.org +593 -0
  136. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/bin/uglifyjs +334 -0
  137. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/docstyle.css +75 -0
  138. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/lib/consolidator.js +1220 -0
  139. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/lib/parse-js.js +1369 -0
  140. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/lib/process.js +2117 -0
  141. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/lib/squeeze-more.js +78 -0
  142. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/package.json +28 -0
  143. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/beautify.js +28 -0
  144. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/testconsolidator.js +1391 -0
  145. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/testparser.js +409 -0
  146. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/1e21.js +1 -0
  147. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/array1.js +1 -0
  148. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/array2.js +1 -0
  149. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/array3.js +1 -0
  150. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/array4.js +1 -0
  151. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/assignment.js +1 -0
  152. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/concatstring.js +1 -0
  153. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/const.js +1 -0
  154. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/div-with-regexp.js +1 -0
  155. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js +1 -0
  156. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/forstatement.js +1 -0
  157. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/if-not.js +1 -0
  158. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/if.js +1 -0
  159. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js +1 -0
  160. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js +1 -0
  161. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/infinite.js +1 -0
  162. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue10.js +1 -0
  163. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue11.js +1 -0
  164. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue13.js +1 -0
  165. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue14.js +1 -0
  166. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue16.js +1 -0
  167. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue17.js +1 -0
  168. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue20.js +1 -0
  169. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue21.js +1 -0
  170. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue25.js +1 -0
  171. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue27.js +1 -0
  172. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue278.js +1 -0
  173. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue28.js +1 -0
  174. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue29.js +1 -0
  175. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue30.js +1 -0
  176. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue34.js +1 -0
  177. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue349.js +1 -0
  178. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue353.js +1 -0
  179. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue372.js +1 -0
  180. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue4.js +1 -0
  181. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue48.js +1 -0
  182. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue50.js +1 -0
  183. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue53.js +1 -0
  184. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js +1 -0
  185. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue68.js +1 -0
  186. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue69.js +1 -0
  187. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue9.js +1 -0
  188. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issues222_324.js +1 -0
  189. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/mangle.js +1 -0
  190. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/null_string.js +1 -0
  191. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js +1 -0
  192. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/var.js +1 -0
  193. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/whitespace.js +1 -0
  194. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/with.js +1 -0
  195. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/1e21.js +1 -0
  196. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/array1.js +3 -0
  197. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/array2.js +4 -0
  198. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/array3.js +4 -0
  199. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/array4.js +6 -0
  200. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/assignment.js +20 -0
  201. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/concatstring.js +3 -0
  202. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/const.js +5 -0
  203. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/div-with-regexp.js +1 -0
  204. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js +4 -0
  205. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/forstatement.js +10 -0
  206. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/if-not.js +1 -0
  207. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/if.js +6 -0
  208. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/ifreturn.js +9 -0
  209. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js +16 -0
  210. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/infinite.js +1 -0
  211. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue10.js +1 -0
  212. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue11.js +3 -0
  213. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue13.js +1 -0
  214. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue14.js +1 -0
  215. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue16.js +1 -0
  216. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue17.js +4 -0
  217. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue20.js +1 -0
  218. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue21.js +6 -0
  219. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue25.js +7 -0
  220. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue27.js +1 -0
  221. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue278.js +1 -0
  222. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue28.js +3 -0
  223. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue29.js +1 -0
  224. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue30.js +3 -0
  225. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue34.js +3 -0
  226. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue349.js +25 -0
  227. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue353.js +4 -0
  228. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue372.js +32 -0
  229. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue4.js +3 -0
  230. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue48.js +1 -0
  231. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue50.js +9 -0
  232. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue53.js +1 -0
  233. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue54.1.js +3 -0
  234. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue68.js +5 -0
  235. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue69.js +1 -0
  236. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue9.js +4 -0
  237. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issues222_324.js +82 -0
  238. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/mangle.js +5 -0
  239. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/null_string.js +1 -0
  240. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/strict-equals.js +3 -0
  241. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/var.js +3 -0
  242. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/whitespace.js +21 -0
  243. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/with.js +2 -0
  244. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/scripts.js +57 -0
  245. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/tmp/hoist.js +33 -0
  246. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/tmp/instrument.js +97 -0
  247. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/tmp/test.js +30 -0
  248. data/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/uglify-js.js +18 -0
  249. data/node_modules/browserify/node_modules/browser-pack/package.json +63 -0
  250. data/node_modules/browserify/node_modules/browser-pack/prelude.js +42 -0
  251. data/node_modules/browserify/node_modules/browser-pack/readme.markdown +85 -0
  252. data/node_modules/browserify/node_modules/browser-pack/test/comment.js +33 -0
  253. data/node_modules/browserify/node_modules/browser-pack/test/only_execute_entries.js +26 -0
  254. data/node_modules/browserify/node_modules/browser-pack/test/order.js +38 -0
  255. data/node_modules/browserify/node_modules/browser-pack/test/pack.js +28 -0
  256. data/node_modules/browserify/node_modules/browser-pack/test/raw.js +32 -0
  257. data/node_modules/browserify/node_modules/browser-pack/test/source-maps-existing.js +56 -0
  258. data/node_modules/browserify/node_modules/browser-pack/test/source-maps.js +113 -0
  259. data/node_modules/browserify/node_modules/browser-pack/test/this.js +24 -0
  260. data/node_modules/browserify/node_modules/browser-resolve/README.md +115 -0
  261. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/assert.js +0 -0
  262. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/child_process.js +0 -0
  263. data/node_modules/browserify/node_modules/{resolve/test/resolver/mug.coffee → browser-resolve/builtin/dgram.js} +0 -0
  264. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/builtin/events.js +0 -0
  265. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/fs.js +0 -0
  266. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/builtin/https.js +0 -0
  267. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/net.js +0 -0
  268. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/path.js +0 -0
  269. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/builtin/process.js +0 -0
  270. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/querystring.js +0 -0
  271. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/stream.js +0 -0
  272. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/string_decoder.js +0 -0
  273. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/sys.js +0 -0
  274. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/timers.js +0 -0
  275. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/tls.js +0 -0
  276. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/tty.js +0 -0
  277. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/url.js +0 -0
  278. data/node_modules/browserify/{builtins → node_modules/browser-resolve/builtin}/util.js +0 -0
  279. data/node_modules/browserify/node_modules/{resolve/test/resolver/mug.js → browser-resolve/empty.js} +0 -0
  280. data/node_modules/browserify/node_modules/browser-resolve/example/builtin.js +4 -0
  281. data/node_modules/browserify/node_modules/browser-resolve/example/custom/custom.js +1 -0
  282. data/node_modules/browserify/node_modules/browser-resolve/example/custom/main.js +1 -0
  283. data/node_modules/browserify/node_modules/browser-resolve/example/custom/package.json +7 -0
  284. data/node_modules/browserify/node_modules/browser-resolve/example/custom.js +5 -0
  285. data/node_modules/browserify/node_modules/browser-resolve/example/resolve.js +4 -0
  286. data/node_modules/browserify/node_modules/browser-resolve/example/skip/main.js +9 -0
  287. data/node_modules/browserify/node_modules/browser-resolve/example/skip/package.json +7 -0
  288. data/node_modules/browserify/node_modules/browser-resolve/example/skip.js +5 -0
  289. data/node_modules/browserify/node_modules/browser-resolve/index.js +170 -0
  290. data/node_modules/browserify/node_modules/{buffer-browserify → browser-resolve/node_modules/buffer-browserify}/README.md +0 -0
  291. data/node_modules/browserify/node_modules/{buffer-browserify → browser-resolve/node_modules/buffer-browserify}/buffer_ieee754.js +0 -0
  292. data/node_modules/browserify/node_modules/{buffer-browserify → browser-resolve/node_modules/buffer-browserify}/index.js +0 -0
  293. data/node_modules/browserify/node_modules/{buffer-browserify → browser-resolve/node_modules/buffer-browserify}/node_modules/base64-js/README.md +0 -0
  294. data/node_modules/browserify/node_modules/{buffer-browserify → browser-resolve/node_modules/buffer-browserify}/node_modules/base64-js/lib/b64.js +0 -0
  295. data/node_modules/browserify/node_modules/{buffer-browserify → browser-resolve/node_modules/buffer-browserify}/node_modules/base64-js/package.json +0 -0
  296. data/node_modules/browserify/node_modules/{buffer-browserify → browser-resolve/node_modules/buffer-browserify}/node_modules/base64-js/test/runner.js +0 -0
  297. data/node_modules/browserify/node_modules/browser-resolve/node_modules/buffer-browserify/package.json +42 -0
  298. data/node_modules/browserify/node_modules/{buffer-browserify → browser-resolve/node_modules/buffer-browserify}/test/buffer.js +0 -0
  299. data/node_modules/browserify/node_modules/{console-browserify → browser-resolve/node_modules/console-browserify}/LICENCE +0 -0
  300. data/node_modules/browserify/node_modules/{console-browserify → browser-resolve/node_modules/console-browserify}/README.md +0 -0
  301. data/node_modules/browserify/node_modules/{console-browserify → browser-resolve/node_modules/console-browserify}/index.js +0 -0
  302. data/node_modules/browserify/node_modules/browser-resolve/node_modules/console-browserify/package.json +76 -0
  303. data/node_modules/browserify/node_modules/{console-browserify → browser-resolve/node_modules/console-browserify}/test/index.js +0 -0
  304. data/node_modules/browserify/node_modules/{console-browserify → browser-resolve/node_modules/console-browserify}/test/static/index.html +0 -0
  305. data/node_modules/browserify/node_modules/{console-browserify → browser-resolve/node_modules/console-browserify}/test/static/test-adapter.js +0 -0
  306. data/node_modules/browserify/node_modules/{crypto-browserify → browser-resolve/node_modules/crypto-browserify}/example/bundle.js +0 -0
  307. data/node_modules/browserify/node_modules/{crypto-browserify → browser-resolve/node_modules/crypto-browserify}/example/index.html +0 -0
  308. data/node_modules/browserify/node_modules/{crypto-browserify → browser-resolve/node_modules/crypto-browserify}/example/test.js +0 -0
  309. data/node_modules/browserify/node_modules/{crypto-browserify → browser-resolve/node_modules/crypto-browserify}/index.js +0 -0
  310. data/node_modules/browserify/node_modules/{crypto-browserify → browser-resolve/node_modules/crypto-browserify}/md5.js +0 -0
  311. data/node_modules/browserify/node_modules/browser-resolve/node_modules/crypto-browserify/package.json +30 -0
  312. data/node_modules/browserify/node_modules/{crypto-browserify → browser-resolve/node_modules/crypto-browserify}/readme.markdown +0 -0
  313. data/node_modules/browserify/node_modules/{crypto-browserify → browser-resolve/node_modules/crypto-browserify}/rng.js +0 -0
  314. data/node_modules/browserify/node_modules/{crypto-browserify → browser-resolve/node_modules/crypto-browserify}/sha.js +0 -0
  315. data/node_modules/browserify/node_modules/{crypto-browserify → browser-resolve/node_modules/crypto-browserify}/test/simple.js +0 -0
  316. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/get/index.html +0 -0
  317. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/get/main.js +0 -0
  318. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/get/server.js +0 -0
  319. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/headers/index.html +0 -0
  320. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/headers/main.js +0 -0
  321. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/headers/server.js +0 -0
  322. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/data.json +0 -0
  323. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/index.html +0 -0
  324. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/main.js +0 -0
  325. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/LICENSE.APACHE2 +0 -0
  326. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/LICENSE.MIT +0 -0
  327. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/examples/all_docs.js +0 -0
  328. data/node_modules/{JSONStream → browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream}/index.js +0 -0
  329. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/LICENSE +0 -0
  330. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/README.markdown +0 -0
  331. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/bench.js +0 -0
  332. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/examples/twitterfeed.js +0 -0
  333. data/node_modules/{JSONStream → browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream}/node_modules/jsonparse/jsonparse.js +0 -0
  334. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/package.json +0 -0
  335. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic.json +0 -0
  336. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic2.json +0 -0
  337. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/test/primitives.js +0 -0
  338. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/test/utf8.js +0 -0
  339. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/package.json +0 -0
  340. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/readme.markdown +0 -0
  341. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/bool.js +0 -0
  342. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/destroy_missing.js +0 -0
  343. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/empty.js +0 -0
  344. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/fixtures/all_npm.json +0 -0
  345. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/fn.js +0 -0
  346. data/node_modules/{JSONStream → browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream}/test/memory.js +0 -0
  347. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/multiple_objects.js +0 -0
  348. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/multiple_objects_error.js +0 -0
  349. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/parsejson.js +0 -0
  350. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/stringify.js +0 -0
  351. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/stringify_object.js +0 -0
  352. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/test.js +0 -0
  353. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/test2.js +0 -0
  354. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/node_modules/JSONStream/test/two-ways.js +0 -0
  355. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/json-stream/server.js +0 -0
  356. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/post/index.html +0 -0
  357. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/post/main.js +0 -0
  358. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/post/server.js +0 -0
  359. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/streaming/index.html +0 -0
  360. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/streaming/main.js +0 -0
  361. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/example/streaming/server.js +0 -0
  362. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/index.js +0 -0
  363. data/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/lib/request.js +131 -0
  364. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/lib/response.js +0 -0
  365. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/node_modules/concat-stream/index.js +0 -0
  366. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/node_modules/concat-stream/package.json +0 -0
  367. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/node_modules/concat-stream/readme.md +0 -0
  368. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/node_modules/concat-stream/test.js +0 -0
  369. data/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/package.json +42 -0
  370. data/node_modules/browserify/node_modules/{http-browserify → browser-resolve/node_modules/http-browserify}/readme.markdown +0 -0
  371. data/node_modules/{module-deps → browserify/node_modules/browser-resolve/node_modules/resolve}/LICENSE +0 -0
  372. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/example/async.js +0 -0
  373. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/example/sync.js +0 -0
  374. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/index.js +0 -0
  375. data/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/lib/async.js +131 -0
  376. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/lib/core.js +0 -0
  377. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/lib/core.json +0 -0
  378. data/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/lib/sync.js +99 -0
  379. data/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/package.json +32 -0
  380. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/readme.markdown +0 -0
  381. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/core.js +0 -0
  382. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/test/filter.js +0 -0
  383. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/test/filter_sync.js +0 -0
  384. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/test/mock.js +0 -0
  385. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/test/mock_sync.js +0 -0
  386. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/resolver/bar/node_modules/foo/index.js +0 -0
  387. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/test/resolver/baz/doom.js +0 -0
  388. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/resolver/baz/package.json +0 -0
  389. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/resolver/baz/quux.js +0 -0
  390. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/resolver/biz/node_modules/grux/index.js +0 -0
  391. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/resolver/biz/node_modules/tiv/index.js +0 -0
  392. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/resolver/cup.coffee +0 -0
  393. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/resolver/foo.js +0 -0
  394. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/test/resolver/mug.coffee +0 -0
  395. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/test/resolver/mug.js +0 -0
  396. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/resolver/other_path/lib/other-lib.js +0 -0
  397. data/node_modules/browserify/node_modules/{resolve → browser-resolve/node_modules/resolve}/test/resolver/other_path/root.js +0 -0
  398. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/test/resolver.js +0 -0
  399. data/node_modules/{module-deps → browserify/node_modules/browser-resolve}/node_modules/resolve/test/resolver_sync.js +0 -0
  400. data/node_modules/browserify/node_modules/{vm-browserify → browser-resolve/node_modules/vm-browserify}/README.markdown +0 -0
  401. data/node_modules/browserify/node_modules/{vm-browserify → browser-resolve/node_modules/vm-browserify}/example/run/bundle.js +0 -0
  402. data/node_modules/browserify/node_modules/{vm-browserify → browser-resolve/node_modules/vm-browserify}/example/run/entry.js +0 -0
  403. data/node_modules/browserify/node_modules/{vm-browserify → browser-resolve/node_modules/vm-browserify}/example/run/index.html +0 -0
  404. data/node_modules/browserify/node_modules/{vm-browserify → browser-resolve/node_modules/vm-browserify}/example/run/server.js +0 -0
  405. data/node_modules/browserify/node_modules/{vm-browserify → browser-resolve/node_modules/vm-browserify}/index.js +0 -0
  406. data/node_modules/browserify/node_modules/browser-resolve/node_modules/vm-browserify/package.json +39 -0
  407. data/node_modules/browserify/node_modules/{vm-browserify → browser-resolve/node_modules/vm-browserify}/testling/run.js +0 -0
  408. data/node_modules/browserify/node_modules/{vm-browserify → browser-resolve/node_modules/vm-browserify}/testling/test.sh +0 -0
  409. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/node_modules/zlib-browserify/index.js +0 -0
  410. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/node_modules/zlib-browserify/package.json +0 -0
  411. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/node_modules/zlib-browserify/readme.md +0 -0
  412. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/node_modules/zlib-browserify/test/zlib.test.js +0 -0
  413. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/node_modules/zlib-browserify/zlib.js +0 -0
  414. data/node_modules/browserify/node_modules/browser-resolve/package.json +38 -0
  415. data/node_modules/browserify/node_modules/browser-resolve/test/core.js +28 -0
  416. data/node_modules/browserify/node_modules/browser-resolve/test/false.js +24 -0
  417. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/test/fixtures/foo.js +0 -0
  418. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/test/local.js +0 -0
  419. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/test/mocha.opts +0 -0
  420. data/node_modules/{module-deps → browserify}/node_modules/browser-resolve/test/modules.js +0 -0
  421. data/node_modules/browserify/node_modules/concat-stream/index.js +50 -0
  422. data/node_modules/browserify/node_modules/concat-stream/package.json +29 -0
  423. data/node_modules/{module-deps/node_modules/browser-resolve/node_modules/http-browserify → browserify}/node_modules/concat-stream/readme.md +0 -0
  424. data/node_modules/browserify/node_modules/concat-stream/test.js +34 -0
  425. data/node_modules/{module-deps/node_modules/browser-resolve/node_modules/console-browserify → browserify/node_modules/duplexer}/LICENCE +0 -0
  426. data/node_modules/browserify/node_modules/duplexer/Makefile +4 -0
  427. data/node_modules/browserify/node_modules/duplexer/README.md +36 -0
  428. data/node_modules/browserify/node_modules/duplexer/index.js +77 -0
  429. data/node_modules/browserify/node_modules/duplexer/package.json +42 -0
  430. data/node_modules/browserify/node_modules/duplexer/test.js +27 -0
  431. data/node_modules/browserify/node_modules/inherits/README.md +51 -0
  432. data/node_modules/browserify/node_modules/inherits/inherits.js +29 -0
  433. data/node_modules/browserify/node_modules/inherits/package.json +26 -0
  434. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals}/LICENSE +0 -0
  435. data/node_modules/browserify/node_modules/insert-module-globals/bench/results.txt +18 -0
  436. data/node_modules/browserify/node_modules/insert-module-globals/bench/run.sh +2 -0
  437. data/node_modules/browserify/node_modules/insert-module-globals/bin/cmd.js +13 -0
  438. data/node_modules/browserify/node_modules/insert-module-globals/buffer.js +3863 -0
  439. data/node_modules/browserify/node_modules/insert-module-globals/bundle.sh +4 -0
  440. data/node_modules/browserify/node_modules/insert-module-globals/example/files/foo/index.js +6 -0
  441. data/node_modules/browserify/node_modules/insert-module-globals/example/files/main.js +6 -0
  442. data/node_modules/browserify/node_modules/insert-module-globals/example/insert.js +10 -0
  443. data/node_modules/browserify/node_modules/insert-module-globals/index.js +102 -0
  444. data/node_modules/browserify/node_modules/{commondir → insert-module-globals/node_modules/commondir}/README.markdown +0 -0
  445. data/node_modules/browserify/node_modules/{commondir → insert-module-globals/node_modules/commondir}/example/base.js +0 -0
  446. data/node_modules/browserify/node_modules/{commondir → insert-module-globals/node_modules/commondir}/example/dir.js +0 -0
  447. data/node_modules/browserify/node_modules/{commondir → insert-module-globals/node_modules/commondir}/index.js +0 -0
  448. data/node_modules/browserify/node_modules/{commondir → insert-module-globals/node_modules/commondir}/package.json +0 -0
  449. data/node_modules/browserify/node_modules/{commondir → insert-module-globals/node_modules/commondir}/test/dirs.js +0 -0
  450. data/node_modules/{module-deps/node_modules/resolve → browserify/node_modules/insert-module-globals/node_modules/lexical-scope}/LICENSE +0 -0
  451. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/bench/jquery.js +4 -0
  452. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/bench/results.txt +15 -0
  453. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/bench/run.js +7 -0
  454. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/example/detect.js +6 -0
  455. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/example/src.js +27 -0
  456. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/index.js +164 -0
  457. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/LICENSE +18 -0
  458. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/example/types.js +8 -0
  459. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/index.js +42 -0
  460. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/ChangeLog +0 -0
  461. data/node_modules/browserify/node_modules/{detective → insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/LICENSE.BSD +0 -0
  462. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/README.md +0 -0
  463. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/bin/esparse.js +0 -0
  464. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/bin/esvalidate.js +0 -0
  465. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/component.json +0 -0
  466. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/doc/index.html +0 -0
  467. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/esprima.js +0 -0
  468. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/examples/detectnestedternary.js +0 -0
  469. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/examples/findbooleantrap.js +0 -0
  470. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/examples/tokendist.js +0 -0
  471. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/index.html +0 -0
  472. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/package.json +0 -0
  473. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/benchmarks.html +0 -0
  474. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/benchmarks.js +0 -0
  475. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/compare.html +0 -0
  476. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/compare.js +0 -0
  477. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/compat.html +0 -0
  478. data/node_modules/browserify/node_modules/{detective → insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/compat.js +0 -0
  479. data/node_modules/browserify/node_modules/{detective → insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/coverage.footer.html +0 -0
  480. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/coverage.header.html +0 -0
  481. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/coverage.html +0 -0
  482. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/index.html +0 -0
  483. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/module.html +0 -0
  484. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/module.js +0 -0
  485. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/reflect.js +0 -0
  486. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/run.js +0 -0
  487. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/runner.js +0 -0
  488. data/node_modules/{module-deps/node_modules/detective → browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw}/node_modules/esprima/test/test.js +0 -0
  489. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/package.json +50 -0
  490. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/readme.markdown +52 -0
  491. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/test/parent.js +25 -0
  492. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/package.json +61 -0
  493. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/readme.markdown +99 -0
  494. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/argument.js +17 -0
  495. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/assign_implicit.js +13 -0
  496. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/detect.js +17 -0
  497. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/argument.js +6 -0
  498. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/assign_implicit.js +2 -0
  499. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/detect.js +32 -0
  500. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/labels.js +11 -0
  501. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/multiple-exports.js +6 -0
  502. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/named_arg.js +6 -0
  503. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/obj.js +1 -0
  504. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/return_hash.js +5 -0
  505. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/right_hand.js +2 -0
  506. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/labels.js +13 -0
  507. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/multiple-exports.js +18 -0
  508. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/named_arg.js +17 -0
  509. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/obj.js +16 -0
  510. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/package.json +5 -0
  511. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/return_hash.js +13 -0
  512. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/right_hand.js +16 -0
  513. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/shebang.js +19 -0
  514. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/2132fedf7e11adbdb654aea08615ffea7b84cbf0.patch +25 -0
  515. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/README.md +15 -0
  516. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js +52 -0
  517. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/index.js +2 -0
  518. data/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/package.json +26 -0
  519. data/node_modules/browserify/node_modules/insert-module-globals/package.json +52 -0
  520. data/node_modules/browserify/node_modules/insert-module-globals/readme.markdown +86 -0
  521. data/node_modules/browserify/node_modules/insert-module-globals/test/always/main.js +6 -0
  522. data/node_modules/browserify/node_modules/insert-module-globals/test/always.js +23 -0
  523. data/node_modules/browserify/node_modules/insert-module-globals/test/global/filename.js +2 -0
  524. data/node_modules/browserify/node_modules/insert-module-globals/test/global/main.js +2 -0
  525. data/node_modules/browserify/node_modules/insert-module-globals/test/global.js +49 -0
  526. data/node_modules/browserify/node_modules/insert-module-globals/test/insert/buffer.js +1 -0
  527. data/node_modules/browserify/node_modules/insert-module-globals/test/insert/foo/buf.js +4 -0
  528. data/node_modules/browserify/node_modules/insert-module-globals/test/insert/foo/index.js +4 -0
  529. data/node_modules/browserify/node_modules/insert-module-globals/test/insert/main.js +4 -0
  530. data/node_modules/browserify/node_modules/insert-module-globals/test/insert.js +35 -0
  531. data/node_modules/browserify/node_modules/module-deps/LICENSE +18 -0
  532. data/node_modules/{module-deps → browserify/node_modules/module-deps}/cmd.js +0 -0
  533. data/node_modules/{module-deps → browserify/node_modules/module-deps}/example/deps.js +0 -0
  534. data/node_modules/{module-deps → browserify/node_modules/module-deps}/example/files/bar.js +0 -0
  535. data/node_modules/{module-deps → browserify/node_modules/module-deps}/example/files/foo.js +0 -0
  536. data/node_modules/{module-deps → browserify/node_modules/module-deps}/example/files/main.js +0 -0
  537. data/node_modules/{module-deps → browserify/node_modules/module-deps}/example/files/xyz.js +0 -0
  538. data/node_modules/browserify/node_modules/module-deps/index.js +195 -0
  539. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/LICENSE +18 -0
  540. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/example/strings.js +0 -0
  541. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/example/strings_src.js +0 -0
  542. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/index.js +66 -0
  543. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/escodegen/LICENSE.BSD +0 -0
  544. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/escodegen/LICENSE.source-map +0 -0
  545. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/escodegen/README.md +0 -0
  546. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/escodegen/bin/escodegen.js +0 -0
  547. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/escodegen/bin/esgenerate.js +0 -0
  548. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/escodegen/escodegen.js +0 -0
  549. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/CHANGELOG.md +58 -0
  550. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/LICENSE +28 -0
  551. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/Makefile.dryice.js +166 -0
  552. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/README.md +347 -0
  553. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/assert-shim.js +56 -0
  554. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/mini-require.js +152 -0
  555. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  556. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/prefix-utils.jsm +18 -0
  557. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/suffix-browser.js +8 -0
  558. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  559. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/suffix-utils.jsm +21 -0
  560. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/test-prefix.js +8 -0
  561. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/test-suffix.js +3 -0
  562. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/array-set.js +96 -0
  563. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
  564. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/base64.js +42 -0
  565. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/binary-search.js +81 -0
  566. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-consumer.js +426 -0
  567. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-generator.js +381 -0
  568. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/source-node.js +353 -0
  569. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/util.js +91 -0
  570. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map.js +8 -0
  571. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  572. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/README.md +119 -0
  573. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  574. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/package.json +34 -0
  575. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/package.json +74 -0
  576. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/run-tests.js +73 -0
  577. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-api.js +26 -0
  578. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-array-set.js +71 -0
  579. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
  580. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-base64.js +35 -0
  581. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  582. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-dog-fooding.js +72 -0
  583. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-consumer.js +291 -0
  584. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-generator.js +391 -0
  585. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-node.js +282 -0
  586. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/util.js +152 -0
  587. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/escodegen/package.json +0 -0
  588. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/ChangeLog +18 -0
  589. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/esprima/LICENSE.BSD +0 -0
  590. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/README.md +73 -0
  591. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/bin/esparse.js +117 -0
  592. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/bin/esvalidate.js +177 -0
  593. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/component.json +14 -0
  594. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/doc/index.html +473 -0
  595. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/esprima.js +3895 -0
  596. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/examples/detectnestedternary.js +106 -0
  597. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/examples/findbooleantrap.js +173 -0
  598. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/examples/tokendist.js +33 -0
  599. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/index.html +102 -0
  600. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/package.json +40 -0
  601. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/benchmarks.html +58 -0
  602. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/benchmarks.js +334 -0
  603. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/compare.html +69 -0
  604. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/compare.js +328 -0
  605. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/compat.html +40 -0
  606. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/esprima/test/compat.js +0 -0
  607. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/node_modules/esprima/test/coverage.footer.html +0 -0
  608. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/coverage.header.html +37 -0
  609. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/coverage.html +4676 -0
  610. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/index.html +37 -0
  611. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/module.html +36 -0
  612. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/module.js +129 -0
  613. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/reflect.js +422 -0
  614. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/run.js +66 -0
  615. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/runner.js +387 -0
  616. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/test.js +19764 -0
  617. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/package.json +36 -0
  618. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/readme.markdown +73 -0
  619. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/both.js +26 -0
  620. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/test/chained.js +0 -0
  621. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/test/files/both.js +0 -0
  622. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/test/files/chained.js +0 -0
  623. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/test/files/nested.js +0 -0
  624. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/test/files/shebang.js +0 -0
  625. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/files/sparse-array.js +3 -0
  626. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/test/files/strings.js +0 -0
  627. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/test/files/word.js +0 -0
  628. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/test/nested.js +0 -0
  629. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/return.js +9 -0
  630. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/detective/test/shebang.js +0 -0
  631. data/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/sparse-array.js +14 -0
  632. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/test/strings.js +0 -0
  633. data/node_modules/browserify/node_modules/{detective → module-deps/node_modules/detective}/test/word.js +0 -0
  634. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/LICENSE +18 -0
  635. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/example/async.js +5 -0
  636. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/example/sync.js +3 -0
  637. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/index.js +5 -0
  638. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/lib/async.js +131 -0
  639. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/lib/core.js +4 -0
  640. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/lib/core.json +38 -0
  641. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/lib/sync.js +99 -0
  642. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/package.json +32 -0
  643. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/readme.markdown +134 -0
  644. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/resolve/test/core.js +0 -0
  645. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/filter.js +17 -0
  646. data/node_modules/browserify/node_modules/{resolve/test/filter.js → module-deps/node_modules/resolve/test/filter_sync.js} +0 -0
  647. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/mock.js +68 -0
  648. data/node_modules/browserify/node_modules/{resolve/test/mock.js → module-deps/node_modules/resolve/test/mock_sync.js} +0 -0
  649. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js +0 -0
  650. data/node_modules/browserify/{test/wrap/x.js → node_modules/module-deps/node_modules/resolve/test/resolver/baz/doom.js} +0 -0
  651. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/resolve/test/resolver/baz/package.json +0 -0
  652. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/resolve/test/resolver/baz/quux.js +0 -0
  653. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js +0 -0
  654. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js +0 -0
  655. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/resolve/test/resolver/cup.coffee +0 -0
  656. data/node_modules/{module-deps → browserify/node_modules/module-deps}/node_modules/resolve/test/resolver/foo.js +0 -0
  657. data/node_modules/{module-deps/node_modules/resolve/test/resolver/other_path/lib/other-lib.js → browserify/node_modules/module-deps/node_modules/resolve/test/resolver/mug.coffee} +0 -0
  658. data/node_modules/{module-deps/node_modules/resolve/test/resolver/other_path/root.js → browserify/node_modules/module-deps/node_modules/resolve/test/resolver/mug.js} +0 -0
  659. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver/other_path/lib/other-lib.js +0 -0
  660. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver/other_path/root.js +0 -0
  661. data/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver.js +144 -0
  662. data/node_modules/browserify/node_modules/{resolve/test/resolver.js → module-deps/node_modules/resolve/test/resolver_sync.js} +0 -0
  663. data/node_modules/{through → browserify/node_modules/module-deps/node_modules/through}/LICENSE.APACHE2 +0 -0
  664. data/node_modules/{through → browserify/node_modules/module-deps/node_modules/through}/LICENSE.MIT +0 -0
  665. data/node_modules/browserify/node_modules/module-deps/node_modules/through/index.js +108 -0
  666. data/node_modules/browserify/node_modules/module-deps/node_modules/through/package.json +43 -0
  667. data/node_modules/browserify/node_modules/module-deps/node_modules/through/readme.markdown +63 -0
  668. data/node_modules/browserify/node_modules/module-deps/node_modules/through/test/auto-destroy.js +30 -0
  669. data/node_modules/browserify/node_modules/module-deps/node_modules/through/test/buffering.js +71 -0
  670. data/node_modules/browserify/node_modules/module-deps/node_modules/through/test/end.js +45 -0
  671. data/node_modules/browserify/node_modules/module-deps/node_modules/through/test/index.js +114 -0
  672. data/node_modules/browserify/node_modules/module-deps/package.json +48 -0
  673. data/node_modules/browserify/node_modules/module-deps/readme.markdown +137 -0
  674. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/bundle.js +0 -0
  675. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/deps.js +0 -0
  676. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/bar.js +0 -0
  677. data/node_modules/browserify/node_modules/module-deps/test/files/filterable.js +10 -0
  678. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/foo.js +0 -0
  679. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/main.js +0 -0
  680. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_module/f.js +0 -0
  681. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_module/main.js +0 -0
  682. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_module/node_modules/g/index.js +0 -0
  683. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_module/node_modules/g/node_modules/insert-ggg/index.js +0 -0
  684. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_module/node_modules/g/package.json +0 -0
  685. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_module/node_modules/insert-aaa/index.js +0 -0
  686. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_module/node_modules/insert-bbb/index.js +0 -0
  687. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_module/node_modules/m/index.js +0 -0
  688. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_sh/f.js +0 -0
  689. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_sh/main.js +0 -0
  690. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_sh/node_modules/g/index.js +0 -0
  691. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_sh/node_modules/g/package.json +0 -0
  692. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_sh/node_modules/g/tr_g.js +0 -0
  693. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_sh/node_modules/m/index.js +0 -0
  694. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_sh/tr_a.js +0 -0
  695. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/tr_sh/tr_b.js +0 -0
  696. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/files/xyz.js +0 -0
  697. data/node_modules/browserify/node_modules/module-deps/test/filter.js +37 -0
  698. data/node_modules/browserify/node_modules/module-deps/test/noparse.js +37 -0
  699. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/tr_fn.js +0 -0
  700. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/tr_module.js +0 -0
  701. data/node_modules/{module-deps → browserify/node_modules/module-deps}/test/tr_sh.js +0 -0
  702. data/node_modules/browserify/node_modules/optimist/README.markdown +13 -0
  703. data/node_modules/browserify/node_modules/optimist/index.js +36 -13
  704. data/node_modules/browserify/node_modules/optimist/package.json +6 -11
  705. data/node_modules/browserify/node_modules/optimist/test/dash.js +31 -0
  706. data/node_modules/browserify/node_modules/optimist/test/parse.js +13 -0
  707. data/node_modules/browserify/node_modules/optimist/test/parse_modified.js +14 -0
  708. data/node_modules/browserify/node_modules/optimist/test/short.js +16 -0
  709. data/node_modules/browserify/node_modules/optimist/test/whitespace.js +8 -0
  710. data/node_modules/browserify/node_modules/shell-quote/README.markdown +72 -0
  711. data/node_modules/browserify/node_modules/shell-quote/example/parse.js +3 -0
  712. data/node_modules/browserify/node_modules/shell-quote/example/quote.js +3 -0
  713. data/node_modules/browserify/node_modules/shell-quote/index.js +33 -0
  714. data/node_modules/browserify/node_modules/shell-quote/package.json +39 -0
  715. data/node_modules/browserify/node_modules/shell-quote/test/parse.js +14 -0
  716. data/node_modules/browserify/node_modules/shell-quote/test/quote.js +15 -0
  717. data/node_modules/browserify/node_modules/syntax-error/index.js +1 -1
  718. data/node_modules/browserify/node_modules/syntax-error/package.json +2 -2
  719. data/node_modules/browserify/node_modules/through/LICENSE.APACHE2 +15 -0
  720. data/node_modules/browserify/node_modules/through/LICENSE.MIT +24 -0
  721. data/node_modules/{through → browserify/node_modules/through}/index.js +0 -0
  722. data/node_modules/browserify/node_modules/through/package.json +43 -0
  723. data/node_modules/browserify/node_modules/through/readme.markdown +43 -0
  724. data/node_modules/browserify/node_modules/through/test/buffering.js +71 -0
  725. data/node_modules/browserify/node_modules/through/test/end.js +26 -0
  726. data/node_modules/browserify/node_modules/through/test/index.js +114 -0
  727. data/node_modules/browserify/node_modules/umd/README.md +46 -0
  728. data/node_modules/browserify/node_modules/umd/index.js +63 -0
  729. data/node_modules/browserify/node_modules/umd/node_modules/rfile/README.md +81 -0
  730. data/node_modules/browserify/node_modules/umd/node_modules/rfile/index.js +39 -0
  731. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/callsite/History.md +10 -0
  732. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/callsite/Makefile +6 -0
  733. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/callsite/Readme.md +44 -0
  734. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/callsite/index.js +10 -0
  735. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/callsite/package.json +27 -0
  736. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/LICENSE +18 -0
  737. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/example/async.js +5 -0
  738. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/example/sync.js +3 -0
  739. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/index.js +5 -0
  740. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/lib/async.js +131 -0
  741. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/lib/core.js +4 -0
  742. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/lib/core.json +38 -0
  743. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/lib/sync.js +99 -0
  744. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/package.json +32 -0
  745. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/readme.markdown +134 -0
  746. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/core.js +12 -0
  747. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/filter.js +17 -0
  748. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/filter_sync.js +15 -0
  749. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/mock.js +68 -0
  750. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/mock_sync.js +68 -0
  751. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js +1 -0
  752. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/baz/doom.js +0 -0
  753. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/baz/package.json +3 -0
  754. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/baz/quux.js +1 -0
  755. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js +1 -0
  756. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js +1 -0
  757. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/cup.coffee +1 -0
  758. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/foo.js +1 -0
  759. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/mug.coffee +0 -0
  760. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/mug.js +0 -0
  761. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/other_path/lib/other-lib.js +0 -0
  762. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/other_path/root.js +0 -0
  763. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver.js +144 -0
  764. data/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver_sync.js +157 -0
  765. data/node_modules/browserify/node_modules/umd/node_modules/rfile/package.json +36 -0
  766. data/node_modules/browserify/node_modules/umd/node_modules/rfile/test/index.js +43 -0
  767. data/node_modules/browserify/node_modules/umd/node_modules/ruglify/README.md +26 -0
  768. data/node_modules/browserify/node_modules/umd/node_modules/ruglify/index.js +9 -0
  769. data/node_modules/browserify/node_modules/umd/node_modules/ruglify/package.json +39 -0
  770. data/node_modules/browserify/node_modules/umd/node_modules/ruglify/test/fixture/jquery.js +9597 -0
  771. data/node_modules/browserify/node_modules/umd/node_modules/ruglify/test/fixture/jquery.min.js +3 -0
  772. data/node_modules/browserify/node_modules/umd/node_modules/ruglify/test/index.js +8 -0
  773. data/node_modules/browserify/node_modules/umd/node_modules/through/LICENSE.APACHE2 +15 -0
  774. data/node_modules/browserify/node_modules/umd/node_modules/through/LICENSE.MIT +24 -0
  775. data/node_modules/browserify/node_modules/umd/node_modules/through/index.js +108 -0
  776. data/node_modules/browserify/node_modules/umd/node_modules/through/package.json +43 -0
  777. data/node_modules/browserify/node_modules/umd/node_modules/through/readme.markdown +63 -0
  778. data/node_modules/browserify/node_modules/umd/node_modules/through/test/auto-destroy.js +30 -0
  779. data/node_modules/browserify/node_modules/umd/node_modules/through/test/buffering.js +71 -0
  780. data/node_modules/browserify/node_modules/umd/node_modules/through/test/end.js +45 -0
  781. data/node_modules/browserify/node_modules/umd/node_modules/through/test/index.js +114 -0
  782. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/README.md +544 -0
  783. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/bin/uglifyjs +370 -0
  784. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/ast.js +964 -0
  785. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/compress.js +1968 -0
  786. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/mozilla-ast.js +265 -0
  787. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/output.js +1220 -0
  788. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/parse.js +1407 -0
  789. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/scope.js +580 -0
  790. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/sourcemap.js +81 -0
  791. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/transform.js +218 -0
  792. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/utils.js +288 -0
  793. data/node_modules/browserify/node_modules/{deputy/node_modules/mkdirp → umd/node_modules/uglify-js/node_modules/optimist}/LICENSE +0 -0
  794. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/bool.js +10 -0
  795. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/boolean_double.js +7 -0
  796. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/boolean_single.js +7 -0
  797. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/default_hash.js +8 -0
  798. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/default_singles.js +7 -0
  799. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/divide.js +8 -0
  800. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/line_count.js +20 -0
  801. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/line_count_options.js +29 -0
  802. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/line_count_wrap.js +29 -0
  803. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/nonopt.js +4 -0
  804. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/reflect.js +2 -0
  805. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/short.js +3 -0
  806. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/string.js +11 -0
  807. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/usage-options.js +19 -0
  808. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/example/xup.js +10 -0
  809. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/index.js +478 -0
  810. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/README.markdown +70 -0
  811. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/center.js +10 -0
  812. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/example/meat.js +3 -0
  813. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/index.js +76 -0
  814. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/package.json +41 -0
  815. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/break.js +30 -0
  816. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/idleness.txt +63 -0
  817. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/node_modules/wordwrap/test/wrap.js +31 -0
  818. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/package.json +42 -0
  819. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/readme.markdown +487 -0
  820. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/test/_/argv.js +2 -0
  821. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/test/_/bin.js +3 -0
  822. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/test/_.js +71 -0
  823. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/test/parse.js +446 -0
  824. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/optimist/test/usage.js +292 -0
  825. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/CHANGELOG.md +58 -0
  826. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/LICENSE +28 -0
  827. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/Makefile.dryice.js +166 -0
  828. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/README.md +347 -0
  829. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/assert-shim.js +56 -0
  830. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/mini-require.js +152 -0
  831. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  832. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/prefix-utils.jsm +18 -0
  833. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/suffix-browser.js +8 -0
  834. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  835. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/suffix-utils.jsm +21 -0
  836. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/test-prefix.js +8 -0
  837. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/test-suffix.js +3 -0
  838. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/array-set.js +96 -0
  839. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
  840. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64.js +42 -0
  841. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/binary-search.js +81 -0
  842. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-consumer.js +426 -0
  843. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-generator.js +381 -0
  844. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-node.js +353 -0
  845. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/util.js +91 -0
  846. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map.js +8 -0
  847. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  848. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/README.md +119 -0
  849. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  850. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/package.json +33 -0
  851. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/package.json +74 -0
  852. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/run-tests.js +73 -0
  853. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-api.js +26 -0
  854. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-array-set.js +71 -0
  855. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
  856. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64.js +35 -0
  857. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  858. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-dog-fooding.js +72 -0
  859. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-consumer.js +291 -0
  860. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-generator.js +391 -0
  861. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-node.js +282 -0
  862. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/util.js +152 -0
  863. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/package.json +37 -0
  864. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/arrays.js +12 -0
  865. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/blocks.js +49 -0
  866. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/conditionals.js +143 -0
  867. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/dead-code.js +89 -0
  868. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/debugger.js +24 -0
  869. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/drop-unused.js +97 -0
  870. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/issue-105.js +17 -0
  871. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/issue-12.js +11 -0
  872. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/issue-22.js +17 -0
  873. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/issue-44.js +31 -0
  874. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/issue-59.js +30 -0
  875. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/labels.js +163 -0
  876. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/loops.js +123 -0
  877. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/properties.js +25 -0
  878. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/sequences.js +161 -0
  879. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/switch.js +210 -0
  880. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/run-tests.js +170 -0
  881. data/node_modules/browserify/node_modules/umd/node_modules/uglify-js/tools/node.js +164 -0
  882. data/node_modules/browserify/node_modules/umd/package.json +32 -0
  883. data/node_modules/browserify/node_modules/umd/template.js +33 -0
  884. data/node_modules/browserify/package.json +25 -38
  885. data/node_modules/browserify/test/args.js +15 -0
  886. data/node_modules/browserify/test/backbone.js +13 -12
  887. data/node_modules/browserify/test/bin.js +6 -14
  888. data/node_modules/browserify/test/bin_entry.js +31 -0
  889. data/node_modules/browserify/test/buffer.js +83 -64
  890. data/node_modules/browserify/test/bundle_sourcemap.js +30 -0
  891. data/node_modules/browserify/test/catch/main.js +1 -0
  892. data/node_modules/browserify/test/catch.js +22 -0
  893. data/node_modules/browserify/test/circular/a.js +3 -0
  894. data/node_modules/browserify/test/circular/b.js +1 -0
  895. data/node_modules/browserify/test/circular/main.js +1 -0
  896. data/node_modules/browserify/test/circular.js +34 -0
  897. data/node_modules/browserify/test/coffee_bin/main.coffee +2 -0
  898. data/node_modules/browserify/test/coffee_bin/x.coffee +1 -0
  899. data/node_modules/browserify/test/coffee_bin.js +36 -0
  900. data/node_modules/browserify/test/comment.js +8 -9
  901. data/node_modules/browserify/test/dep.js +31 -0
  902. data/node_modules/browserify/test/dnode.js +17 -17
  903. data/node_modules/browserify/test/dollar.js +11 -12
  904. data/node_modules/browserify/test/entry.js +11 -28
  905. data/node_modules/browserify/test/entry_exec/fail.js +1 -0
  906. data/node_modules/browserify/test/entry_exec/main.js +1 -0
  907. data/node_modules/browserify/test/entry_exec.js +15 -0
  908. data/node_modules/browserify/test/error_code.js +0 -2
  909. data/node_modules/browserify/test/export.js +22 -39
  910. data/node_modules/browserify/test/fake/fake_fs.js +1 -0
  911. data/node_modules/browserify/test/fake/main.js +2 -0
  912. data/node_modules/browserify/test/fake.js +15 -0
  913. data/node_modules/browserify/test/field/node_modules/z-object/package.json +1 -3
  914. data/node_modules/browserify/test/field.js +40 -40
  915. data/node_modules/browserify/test/file_event.js +33 -0
  916. data/node_modules/browserify/test/global/buffer.js +2 -0
  917. data/node_modules/browserify/test/global/filename.js +2 -0
  918. data/node_modules/browserify/test/global/tick.js +3 -0
  919. data/node_modules/browserify/test/global.js +45 -10
  920. data/node_modules/browserify/test/ignore/by-id.js +4 -0
  921. data/node_modules/browserify/test/ignore/main.js +1 -0
  922. data/node_modules/browserify/test/ignore/skip.js +1 -0
  923. data/node_modules/browserify/test/ignore.js +33 -0
  924. data/node_modules/browserify/test/json.js +11 -10
  925. data/node_modules/browserify/test/maxlisteners/main.js +3 -0
  926. data/node_modules/browserify/test/maxlisteners.js +9 -4
  927. data/node_modules/browserify/test/multi_bundle/a.js +2 -0
  928. data/node_modules/browserify/test/multi_bundle/b.js +5 -0
  929. data/node_modules/browserify/test/multi_bundle.js +44 -0
  930. data/node_modules/browserify/test/multi_entry/c.js +0 -1
  931. data/node_modules/browserify/test/multi_entry.js +16 -11
  932. data/node_modules/browserify/test/process/main.js +3 -0
  933. data/node_modules/browserify/test/process/one.js +1 -0
  934. data/node_modules/browserify/test/process/two.js +1 -0
  935. data/node_modules/browserify/test/process.js +20 -0
  936. data/node_modules/browserify/test/require_cache.js +13 -12
  937. data/node_modules/browserify/test/retarget.js +2 -6
  938. data/node_modules/browserify/test/reverse_multi_bundle/app.js +22 -0
  939. data/node_modules/browserify/test/reverse_multi_bundle/lazy.js +4 -0
  940. data/node_modules/browserify/test/reverse_multi_bundle/shared.js +4 -0
  941. data/node_modules/browserify/test/reverse_multi_bundle.js +43 -0
  942. data/node_modules/browserify/test/shebang/foo.js +2 -0
  943. data/node_modules/browserify/test/shebang/main.js +4 -0
  944. data/node_modules/browserify/test/shebang.js +11 -0
  945. data/node_modules/browserify/test/standalone/main.js +3 -0
  946. data/node_modules/browserify/test/standalone/one.js +1 -0
  947. data/node_modules/browserify/test/standalone/two.js +1 -0
  948. data/node_modules/browserify/test/standalone.js +73 -0
  949. data/node_modules/browserify/test/subdep.js +8 -18
  950. data/node_modules/browserify/test/tr/f.js +1 -0
  951. data/node_modules/browserify/test/tr/main.js +7 -0
  952. data/node_modules/browserify/test/tr/node_modules/g/index.js +1 -0
  953. data/node_modules/browserify/test/tr/node_modules/g/node_modules/insert-ggg/index.js +7 -0
  954. data/node_modules/browserify/test/tr/node_modules/g/package.json +6 -0
  955. data/node_modules/browserify/test/tr/node_modules/insert-aaa/index.js +7 -0
  956. data/node_modules/browserify/test/tr/node_modules/insert-bbb/index.js +7 -0
  957. data/node_modules/browserify/test/tr/node_modules/m/index.js +3 -0
  958. data/node_modules/browserify/test/tr.js +21 -0
  959. data/node_modules/browserify/test/util.js +43 -29
  960. data/package.json +2 -5
  961. metadata +931 -614
  962. data/node_modules/JSONStream/node_modules/jsonparse/package.json +0 -34
  963. data/node_modules/JSONStream/package.json +0 -38
  964. data/node_modules/browserify/builtins/__browserify_process.js +0 -55
  965. data/node_modules/browserify/builtins/events.js +0 -178
  966. data/node_modules/browserify/builtins/https.js +0 -1
  967. data/node_modules/browserify/doc/methods.markdown +0 -182
  968. data/node_modules/browserify/doc/recipes.markdown +0 -62
  969. data/node_modules/browserify/example/debug/browserify.js +0 -219
  970. data/node_modules/browserify/example/debug/build.sh +0 -3
  971. data/node_modules/browserify/example/debug/index.html +0 -7
  972. data/node_modules/browserify/example/debug/js/entry.js +0 -2
  973. data/node_modules/browserify/example/debug/js/thrower.js +0 -3
  974. data/node_modules/browserify/example/debug/server.js +0 -9
  975. data/node_modules/browserify/example/simple-build/browserify.js +0 -368
  976. data/node_modules/browserify/example/simple-build/build.sh +0 -3
  977. data/node_modules/browserify/example/simple-build/index.html +0 -9
  978. data/node_modules/browserify/example/simple-build/js/bar.js +0 -3
  979. data/node_modules/browserify/example/simple-build/js/entry.js +0 -5
  980. data/node_modules/browserify/example/simple-build/js/foo.js +0 -5
  981. data/node_modules/browserify/example/simple-build/server.js +0 -9
  982. data/node_modules/browserify/example/test/b.js +0 -5
  983. data/node_modules/browserify/example/test/bar.js +0 -3
  984. data/node_modules/browserify/example/test/foo.js +0 -3
  985. data/node_modules/browserify/example/test/m.js +0 -3
  986. data/node_modules/browserify/example/test/n.js +0 -3
  987. data/node_modules/browserify/example/using-http/bundle.js +0 -813
  988. data/node_modules/browserify/example/using-http/entry.js +0 -25
  989. data/node_modules/browserify/example/using-http/index.html +0 -9
  990. data/node_modules/browserify/example/using-http/server.js +0 -28
  991. data/node_modules/browserify/lib/watch.js +0 -75
  992. data/node_modules/browserify/lib/wrap.js +0 -583
  993. data/node_modules/browserify/lib/wrappers.js +0 -10
  994. data/node_modules/browserify/node_modules/buffer-browserify/package.json +0 -42
  995. data/node_modules/browserify/node_modules/coffee-script/CNAME +0 -1
  996. data/node_modules/browserify/node_modules/coffee-script/CONTRIBUTING.md +0 -9
  997. data/node_modules/browserify/node_modules/coffee-script/LICENSE +0 -22
  998. data/node_modules/browserify/node_modules/coffee-script/README +0 -51
  999. data/node_modules/browserify/node_modules/coffee-script/Rakefile +0 -79
  1000. data/node_modules/browserify/node_modules/coffee-script/bin/cake +0 -7
  1001. data/node_modules/browserify/node_modules/coffee-script/bin/coffee +0 -7
  1002. data/node_modules/browserify/node_modules/coffee-script/extras/jsl.conf +0 -44
  1003. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/browser.js +0 -101
  1004. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/cake.js +0 -113
  1005. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/coffee-script.js +0 -218
  1006. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/command.js +0 -506
  1007. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/grammar.js +0 -623
  1008. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/helpers.js +0 -150
  1009. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/index.js +0 -11
  1010. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/lexer.js +0 -905
  1011. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/nodes.js +0 -3088
  1012. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/optparse.js +0 -138
  1013. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/parser.js +0 -608
  1014. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/repl.js +0 -104
  1015. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/rewriter.js +0 -478
  1016. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/scope.js +0 -147
  1017. data/node_modules/browserify/node_modules/coffee-script/lib/coffee-script/sourcemap.js +0 -237
  1018. data/node_modules/browserify/node_modules/coffee-script/package.json +0 -48
  1019. data/node_modules/browserify/node_modules/console-browserify/package.json +0 -76
  1020. data/node_modules/browserify/node_modules/crypto-browserify/package.json +0 -30
  1021. data/node_modules/browserify/node_modules/deputy/README.markdown +0 -55
  1022. data/node_modules/browserify/node_modules/deputy/example/cache.js +0 -5
  1023. data/node_modules/browserify/node_modules/deputy/index.js +0 -46
  1024. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/examples/pow.js +0 -6
  1025. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/index.js +0 -82
  1026. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/package.json +0 -30
  1027. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/readme.markdown +0 -63
  1028. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/chmod.js +0 -38
  1029. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/clobber.js +0 -37
  1030. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/mkdirp.js +0 -28
  1031. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/perm.js +0 -32
  1032. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/perm_sync.js +0 -39
  1033. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/race.js +0 -41
  1034. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/rel.js +0 -32
  1035. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/return.js +0 -25
  1036. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/return_sync.js +0 -24
  1037. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/root.js +0 -18
  1038. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/sync.js +0 -32
  1039. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/umask.js +0 -28
  1040. data/node_modules/browserify/node_modules/deputy/node_modules/mkdirp/test/umask_sync.js +0 -32
  1041. data/node_modules/browserify/node_modules/deputy/package.json +0 -43
  1042. data/node_modules/browserify/node_modules/deputy/test/cache.js +0 -58
  1043. data/node_modules/browserify/node_modules/detective/README.markdown +0 -66
  1044. data/node_modules/browserify/node_modules/detective/example/strings.js +0 -6
  1045. data/node_modules/browserify/node_modules/detective/index.js +0 -60
  1046. data/node_modules/browserify/node_modules/detective/node_modules/esprima/README.md +0 -74
  1047. data/node_modules/browserify/node_modules/detective/node_modules/esprima/assets/codemirror/codemirror.css +0 -112
  1048. data/node_modules/browserify/node_modules/detective/node_modules/esprima/assets/codemirror/codemirror.js +0 -2972
  1049. data/node_modules/browserify/node_modules/detective/node_modules/esprima/assets/codemirror/javascript.js +0 -360
  1050. data/node_modules/browserify/node_modules/detective/node_modules/esprima/assets/json2.js +0 -487
  1051. data/node_modules/browserify/node_modules/detective/node_modules/esprima/assets/style.css +0 -164
  1052. data/node_modules/browserify/node_modules/detective/node_modules/esprima/assets/yui/treeview-min.js +0 -12
  1053. data/node_modules/browserify/node_modules/detective/node_modules/esprima/assets/yui/treeview-sprite.gif +0 -0
  1054. data/node_modules/browserify/node_modules/detective/node_modules/esprima/assets/yui/treeview.css +0 -7
  1055. data/node_modules/browserify/node_modules/detective/node_modules/esprima/assets/yui/yahoo-dom-event.js +0 -14
  1056. data/node_modules/browserify/node_modules/detective/node_modules/esprima/bin/esparse.js +0 -42
  1057. data/node_modules/browserify/node_modules/detective/node_modules/esprima/changes +0 -92
  1058. data/node_modules/browserify/node_modules/detective/node_modules/esprima/cm +0 -696
  1059. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/checkenv.js +0 -42
  1060. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/collector.html +0 -82
  1061. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/collector.js +0 -170
  1062. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/functiontrace.html +0 -106
  1063. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/functiontrace.js +0 -123
  1064. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/parse.css +0 -82
  1065. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/parse.html +0 -352
  1066. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/precedence.html +0 -225
  1067. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/rewrite.html +0 -120
  1068. data/node_modules/browserify/node_modules/detective/node_modules/esprima/demo/rewrite.js +0 -71
  1069. data/node_modules/browserify/node_modules/detective/node_modules/esprima/esprima.js +0 -3577
  1070. data/node_modules/browserify/node_modules/detective/node_modules/esprima/index.html +0 -103
  1071. data/node_modules/browserify/node_modules/detective/node_modules/esprima/package.json +0 -39
  1072. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/Tokenizer.js +0 -646
  1073. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/XMLHttpRequest.js +0 -509
  1074. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/ZeParser.js +0 -2185
  1075. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/backbone-0.5.3.js +0 -1158
  1076. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/benchmark.js +0 -3261
  1077. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/escodegen.js +0 -906
  1078. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/esmorph.js +0 -240
  1079. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/ext-core-3.0.0.js +0 -6579
  1080. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/ext-core-3.1.0.js +0 -10255
  1081. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/jquery-1.6.4.js +0 -9046
  1082. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/jquery-1.7.1.js +0 -9266
  1083. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/jquery.mobile-1.0.js +0 -6951
  1084. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/jsdefs.js +0 -731
  1085. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/jslex.js +0 -588
  1086. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/jsparse.js +0 -1921
  1087. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/mootools-1.3.2.js +0 -5952
  1088. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/mootools-1.4.1.js +0 -6297
  1089. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/parse-js.js +0 -1342
  1090. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/platform.js +0 -878
  1091. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/prototype-1.6.1.js +0 -4874
  1092. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/prototype-1.7.0.0.js +0 -6082
  1093. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/3rdparty/underscore-1.2.3.js +0 -981
  1094. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/benchmarks.html +0 -58
  1095. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/benchmarks.js +0 -328
  1096. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/compare.html +0 -140
  1097. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/compare.js +0 -270
  1098. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/compat.html +0 -40
  1099. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/coverage.header.html +0 -37
  1100. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/coverage.html +0 -3617
  1101. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/index.html +0 -36
  1102. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/reflect.js +0 -403
  1103. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/run.js +0 -66
  1104. data/node_modules/browserify/node_modules/detective/node_modules/esprima/test/test.js +0 -16659
  1105. data/node_modules/browserify/node_modules/detective/node_modules/esprima/tools/generate-unicode-regex.py +0 -164
  1106. data/node_modules/browserify/node_modules/detective/node_modules/esprima/tools/update-coverage.sh +0 -28
  1107. data/node_modules/browserify/node_modules/detective/package.json +0 -43
  1108. data/node_modules/browserify/node_modules/detective/test/both.js +0 -11
  1109. data/node_modules/browserify/node_modules/detective/test/files/skip.js +0 -7
  1110. data/node_modules/browserify/node_modules/detective/test/skip.js +0 -9
  1111. data/node_modules/browserify/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/index.js +0 -189
  1112. data/node_modules/browserify/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/jsonparse.js +0 -379
  1113. data/node_modules/browserify/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/test/memory.js +0 -69
  1114. data/node_modules/browserify/node_modules/http-browserify/lib/request.js +0 -128
  1115. data/node_modules/browserify/node_modules/http-browserify/package.json +0 -42
  1116. data/node_modules/browserify/node_modules/nub/README.markdown +0 -23
  1117. data/node_modules/browserify/node_modules/nub/index.js +0 -64
  1118. data/node_modules/browserify/node_modules/nub/package.json +0 -42
  1119. data/node_modules/browserify/node_modules/nub/test/by.js +0 -51
  1120. data/node_modules/browserify/node_modules/nub/test/nub.js +0 -46
  1121. data/node_modules/browserify/node_modules/optimist/x.js +0 -1
  1122. data/node_modules/browserify/node_modules/resolve/README.markdown +0 -47
  1123. data/node_modules/browserify/node_modules/resolve/index.js +0 -109
  1124. data/node_modules/browserify/node_modules/resolve/package.json +0 -41
  1125. data/node_modules/browserify/node_modules/vm-browserify/package.json +0 -39
  1126. data/node_modules/browserify/test/alias.js +0 -58
  1127. data/node_modules/browserify/test/bundle.js +0 -32
  1128. data/node_modules/browserify/test/cache.js +0 -28
  1129. data/node_modules/browserify/test/coffee/bar.js +0 -1
  1130. data/node_modules/browserify/test/coffee/baz.coffee +0 -1
  1131. data/node_modules/browserify/test/coffee/entry.coffee +0 -1
  1132. data/node_modules/browserify/test/coffee/foo.coffee +0 -1
  1133. data/node_modules/browserify/test/coffee/index.coffee +0 -5
  1134. data/node_modules/browserify/test/coffee/nested/nested.coffee +0 -2
  1135. data/node_modules/browserify/test/coffee.js +0 -39
  1136. data/node_modules/browserify/test/jade.js +0 -35
  1137. data/node_modules/browserify/test/module.js +0 -22
  1138. data/node_modules/browserify/test/multi_ignore.js +0 -23
  1139. data/node_modules/browserify/test/seq.js +0 -47
  1140. data/node_modules/browserify/test/watch/a.js +0 -1
  1141. data/node_modules/browserify/test/watch.js +0 -91
  1142. data/node_modules/browserify/test/wrap/a.js +0 -2
  1143. data/node_modules/browserify/test/wrap/c.js +0 -1
  1144. data/node_modules/browserify/test/wrap/node_modules/b/main.js +0 -1
  1145. data/node_modules/browserify/test/wrap/node_modules/b/package.json +0 -3
  1146. data/node_modules/browserify/test/wrap/node_modules/skipmetoo/index.js +0 -1
  1147. data/node_modules/browserify/test/wrap/skipme.js +0 -1
  1148. data/node_modules/browserify/test/wrap.js +0 -43
  1149. data/node_modules/browserify/testling/README.markdown +0 -29
  1150. data/node_modules/browserify/testling/test.sh +0 -37
  1151. data/node_modules/browserify/testling/tick.js +0 -9
  1152. data/node_modules/browserify/testling/timers.js +0 -50
  1153. data/node_modules/browserify/testling/util.js +0 -24
  1154. data/node_modules/browserify/v2.markdown +0 -41
  1155. data/node_modules/browserify/wrappers/alias.js +0 -1
  1156. data/node_modules/browserify/wrappers/body.js +0 -2
  1157. data/node_modules/browserify/wrappers/body_debug.js +0 -2
  1158. data/node_modules/browserify/wrappers/entry.js +0 -3
  1159. data/node_modules/browserify/wrappers/entry_debug.js +0 -3
  1160. data/node_modules/browserify/wrappers/package.js +0 -3
  1161. data/node_modules/browserify/wrappers/prelude.js +0 -196
  1162. data/node_modules/module-deps/index.js +0 -142
  1163. data/node_modules/module-deps/node_modules/browser-resolve/README.md +0 -14
  1164. data/node_modules/module-deps/node_modules/browser-resolve/builtin/assert.js +0 -314
  1165. data/node_modules/module-deps/node_modules/browser-resolve/builtin/child_process.js +0 -2
  1166. data/node_modules/module-deps/node_modules/browser-resolve/builtin/fs.js +0 -1
  1167. data/node_modules/module-deps/node_modules/browser-resolve/builtin/net.js +0 -1
  1168. data/node_modules/module-deps/node_modules/browser-resolve/builtin/path.js +0 -175
  1169. data/node_modules/module-deps/node_modules/browser-resolve/builtin/querystring.js +0 -250
  1170. data/node_modules/module-deps/node_modules/browser-resolve/builtin/stream.js +0 -119
  1171. data/node_modules/module-deps/node_modules/browser-resolve/builtin/string_decoder.js +0 -161
  1172. data/node_modules/module-deps/node_modules/browser-resolve/builtin/sys.js +0 -1
  1173. data/node_modules/module-deps/node_modules/browser-resolve/builtin/timers.js +0 -39
  1174. data/node_modules/module-deps/node_modules/browser-resolve/builtin/tls.js +0 -1
  1175. data/node_modules/module-deps/node_modules/browser-resolve/builtin/tty.js +0 -2
  1176. data/node_modules/module-deps/node_modules/browser-resolve/builtin/url.js +0 -604
  1177. data/node_modules/module-deps/node_modules/browser-resolve/builtin/util.js +0 -351
  1178. data/node_modules/module-deps/node_modules/browser-resolve/index.js +0 -144
  1179. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/buffer-browserify/README.md +0 -11
  1180. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/buffer-browserify/buffer_ieee754.js +0 -84
  1181. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/buffer-browserify/index.js +0 -1282
  1182. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/buffer-browserify/node_modules/base64-js/README.md +0 -14
  1183. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/buffer-browserify/node_modules/base64-js/lib/b64.js +0 -84
  1184. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/buffer-browserify/node_modules/base64-js/package.json +0 -26
  1185. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/buffer-browserify/node_modules/base64-js/test/runner.js +0 -50
  1186. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/buffer-browserify/package.json +0 -42
  1187. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/buffer-browserify/test/buffer.js +0 -121
  1188. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/console-browserify/README.md +0 -32
  1189. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/console-browserify/index.js +0 -85
  1190. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/console-browserify/package.json +0 -76
  1191. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/console-browserify/test/index.js +0 -67
  1192. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/console-browserify/test/static/index.html +0 -12
  1193. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/console-browserify/test/static/test-adapter.js +0 -53
  1194. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/example/bundle.js +0 -637
  1195. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/example/index.html +0 -12
  1196. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/example/test.js +0 -4
  1197. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/index.js +0 -74
  1198. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/md5.js +0 -384
  1199. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/package.json +0 -30
  1200. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/readme.markdown +0 -20
  1201. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/rng.js +0 -37
  1202. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/sha.js +0 -210
  1203. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/crypto-browserify/test/simple.js +0 -35
  1204. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/README.markdown +0 -128
  1205. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/get/index.html +0 -9
  1206. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/get/main.js +0 -14
  1207. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/get/server.js +0 -12
  1208. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/headers/index.html +0 -9
  1209. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/headers/main.js +0 -18
  1210. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/headers/server.js +0 -15
  1211. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/post/index.html +0 -9
  1212. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/post/main.js +0 -16
  1213. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/post/server.js +0 -19
  1214. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/streaming/index.html +0 -9
  1215. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/streaming/main.js +0 -16
  1216. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/example/streaming/server.js +0 -21
  1217. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/index.js +0 -59
  1218. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/lib/request.js +0 -122
  1219. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/lib/response.js +0 -119
  1220. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/node_modules/concat-stream/index.js +0 -48
  1221. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/node_modules/concat-stream/package.json +0 -29
  1222. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/node_modules/concat-stream/test.js +0 -34
  1223. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/http-browserify/package.json +0 -42
  1224. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/vm-browserify/README.markdown +0 -103
  1225. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/vm-browserify/example/run/bundle.js +0 -473
  1226. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/vm-browserify/example/run/entry.js +0 -6
  1227. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/vm-browserify/example/run/index.html +0 -9
  1228. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/vm-browserify/example/run/server.js +0 -6
  1229. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/vm-browserify/index.js +0 -85
  1230. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/vm-browserify/package.json +0 -39
  1231. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/vm-browserify/testling/run.js +0 -22
  1232. data/node_modules/module-deps/node_modules/browser-resolve/node_modules/vm-browserify/testling/test.sh +0 -11
  1233. data/node_modules/module-deps/node_modules/browser-resolve/package.json +0 -38
  1234. data/node_modules/module-deps/node_modules/browser-resolve/test/core.js +0 -20
  1235. data/node_modules/module-deps/node_modules/detective/example/strings_src.js +0 -3
  1236. data/node_modules/module-deps/node_modules/detective/index.js +0 -62
  1237. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/Makefile.dryice.js +0 -165
  1238. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/README.md +0 -268
  1239. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/prefix-source-map.jsm +0 -20
  1240. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/prefix-utils.jsm +0 -18
  1241. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/suffix-source-map.jsm +0 -6
  1242. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/suffix-utils.jsm +0 -20
  1243. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/array-set.js +0 -107
  1244. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-consumer.js +0 -379
  1245. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-generator.js +0 -202
  1246. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/source-node.js +0 -199
  1247. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/util.js +0 -40
  1248. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/README.md +0 -119
  1249. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/amdefine.js +0 -299
  1250. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/package.json +0 -29
  1251. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/package.json +0 -38
  1252. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/run-tests.js +0 -72
  1253. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-consumer.js +0 -142
  1254. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-generator.js +0 -187
  1255. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-node.js +0 -163
  1256. data/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/util.js +0 -78
  1257. data/node_modules/module-deps/node_modules/detective/package.json +0 -36
  1258. data/node_modules/module-deps/node_modules/detective/readme.markdown +0 -70
  1259. data/node_modules/module-deps/node_modules/detective/test/both.js +0 -11
  1260. data/node_modules/module-deps/node_modules/detective/test/chained.js +0 -9
  1261. data/node_modules/module-deps/node_modules/detective/test/files/both.js +0 -4
  1262. data/node_modules/module-deps/node_modules/detective/test/files/chained.js +0 -5
  1263. data/node_modules/module-deps/node_modules/detective/test/files/nested.js +0 -22
  1264. data/node_modules/module-deps/node_modules/detective/test/files/strings.js +0 -13
  1265. data/node_modules/module-deps/node_modules/detective/test/files/word.js +0 -13
  1266. data/node_modules/module-deps/node_modules/detective/test/nested.js +0 -9
  1267. data/node_modules/module-deps/node_modules/detective/test/strings.js +0 -9
  1268. data/node_modules/module-deps/node_modules/detective/test/word.js +0 -12
  1269. data/node_modules/module-deps/node_modules/resolve/lib/async.js +0 -131
  1270. data/node_modules/module-deps/node_modules/resolve/lib/sync.js +0 -98
  1271. data/node_modules/module-deps/node_modules/resolve/package.json +0 -32
  1272. data/node_modules/module-deps/package.json +0 -47
  1273. data/node_modules/module-deps/readme.markdown +0 -128
  1274. data/node_modules/through/package.json +0 -35
  1275. data/node_modules/through/readme.markdown +0 -43
  1276. data/node_modules/through/test/buffering.js +0 -71
  1277. data/node_modules/through/test/end.js +0 -27
  1278. data/node_modules/through/test/index.js +0 -113
@@ -1,2185 +0,0 @@
1
- if (typeof exports !== 'undefined') {
2
- var Tokenizer = require('./Tokenizer').Tokenizer;
3
- exports.ZeParser = ZeParser;
4
- }
5
-
6
- /**
7
- * This is my js Parser: Ze. It's actually the post-dev pre-cleanup version. Clearly.
8
- * Some optimizations have been applied :)
9
- * (c) Peter van der Zee, qfox.nl
10
- * @param {String} inp Input
11
- * @param {Tokenizer} tok
12
- * @param {Array} stack The tokens will be put in this array. If you're looking for the AST, this would be it :)
13
- */
14
- function ZeParser(inp, tok, stack, simple){
15
- this.input = inp;
16
- this.tokenizer = tok;
17
- this.stack = stack;
18
- this.stack.root = true;
19
- this.scope = stack.scope = [{value:'this', isDeclared:true, isEcma:true, thisIsGlobal:true}]; // names of variables
20
- this.scope.global = true;
21
- this.statementLabels = [];
22
-
23
- this.errorStack = [];
24
-
25
- stack.scope = this.scope; // hook root
26
- stack.labels = this.statementLabels;
27
-
28
- this.regexLhsStart = ZeParser.regexLhsStart;
29
- /*
30
- this.regexStartKeyword = ZeParser.regexStartKeyword;
31
- this.regexKeyword = ZeParser.regexKeyword;
32
- this.regexStartReserved = ZeParser.regexStartReserved;
33
- this.regexReserved = ZeParser.regexReserved;
34
- */
35
- this.regexStartKeyOrReserved = ZeParser.regexStartKeyOrReserved;
36
- this.hashStartKeyOrReserved = ZeParser.hashStartKeyOrReserved;
37
- this.regexIsKeywordOrReserved = ZeParser.regexIsKeywordOrReserved;
38
- this.regexAssignments = ZeParser.regexAssignments;
39
- this.regexNonAssignmentBinaryExpressionOperators = ZeParser.regexNonAssignmentBinaryExpressionOperators;
40
- this.regexUnaryKeywords = ZeParser.regexUnaryKeywords;
41
- this.hashUnaryKeywordStart = ZeParser.hashUnaryKeywordStart;
42
- this.regexUnaryOperators = ZeParser.regexUnaryOperators;
43
- this.regexLiteralKeywords = ZeParser.regexLiteralKeywords;
44
- this.testing = {'this':1,'null':1,'true':1,'false':1};
45
-
46
- this.ast = !simple; ///#define FULL_AST
47
- };
48
- /**
49
- * Returns just a stacked parse tree (regular array)
50
- * @param {string} input
51
- * @param {boolean} simple=false
52
- * @return {Array}
53
- */
54
- ZeParser.parse = function(input, simple){
55
- var tok = new Tokenizer(input);
56
- var stack = [];
57
- try {
58
- var parser = new ZeParser(input, tok, stack);
59
- if (simple) parser.ast = false;
60
- parser.parse();
61
- return stack;
62
- } catch (e) {
63
- console.log("Parser has a bug for this input, please report it :)", e);
64
- return null;
65
- }
66
- };
67
- /**
68
- * Returns a new parser instance with parse details for input
69
- * @param {string} input
70
- * @returns {ZeParser}
71
- */
72
- ZeParser.createParser = function(input){
73
- var tok = new Tokenizer(input);
74
- var stack = [];
75
- try {
76
- var parser = new ZeParser(input, tok, stack);
77
- parser.parse();
78
- return parser;
79
- } catch (e) {
80
- console.log("Parser has a bug for this input, please report it :)", e);
81
- return null;
82
- }
83
- };
84
- ZeParser.prototype = {
85
- input: null,
86
- tokenizer: null,
87
- stack: null,
88
- scope: null,
89
- statementLabels: null,
90
- errorStack: null,
91
-
92
- ast: null,
93
-
94
- parse: function(match){
95
- if (match) match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, this.stack); // meh
96
- else match = this.tokenizer.storeCurrentAndFetchNextToken(false, null, this.stack, true); // initialization step, dont store the match (there isnt any!)
97
-
98
- match = this.eatSourceElements(match, this.stack);
99
-
100
- var cycled = false;
101
- do {
102
- if (match && match.name != 12/*eof*/) {
103
- // if not already an error, insert an error before it
104
- if (match.name != 14/*error*/) this.failignore('UnexpectedToken', match, this.stack);
105
- // just parse the token as is and continue.
106
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, this.stack);
107
- cycled = true;
108
- }
109
-
110
- // keep gobbling any errors...
111
- } while (match && match.name == 14/*error*/);
112
-
113
- // now try again (but only if we gobbled at least one token)...
114
- if (cycled && match && match.name != 12/*eof*/) match = this.parse(match);
115
-
116
- // pop the last token off the stack if it caused an error at eof
117
- if (this.tokenizer.errorEscape) {
118
- this.stack.push(this.tokenizer.errorEscape);
119
- this.tokenizer.errorEscape = null;
120
- }
121
-
122
- return match;
123
- },
124
-
125
- eatSemiColon: function(match, stack){
126
- //this.stats.eatSemiColon = (+//this.stats.eatSemiColon||0)+1;
127
- if (match.value == ';') match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
128
- else {
129
- // try asi
130
- // only if:
131
- // - this token was preceeded by at least one newline (match.newline) or next token is }
132
- // - this is EOF
133
- // - prev token was one of return,continue,break,throw (restricted production), not checked here.
134
-
135
- // the exceptions to this rule are
136
- // - if the next line is a regex
137
- // - the semi is part of the for-header.
138
- // these exceptions are automatically caught by the way the parser is built
139
-
140
- // not eof and just parsed semi or no newline preceeding and next isnt }
141
- if (match.name != 12/*EOF*/ && (match.semi || (!match.newline && match.value != '}')) && !(match.newline && (match.value == '++' || match.value == '--'))) {
142
- this.failignore('NoASI', match, stack);
143
- } else {
144
- // ASI
145
- // (match is actually the match _after_ this asi, so the position of asi is match.start, not stop (!)
146
- var asi = {start:match.start,stop:match.start,name:13/*ASI*/};
147
- stack.push(asi);
148
-
149
- // slip it in the stream, before the current match.
150
- // for the other tokens see the tokenizer near the end of the main parsing function
151
- this.tokenizer.addTokenToStreamBefore(asi, match);
152
- }
153
- }
154
- match.semi = true;
155
- return match;
156
- },
157
- /**
158
- * Eat one or more "AssignmentExpression"s. May also eat a labeled statement if
159
- * the parameters are set that way. This is the only way to linearly distinct between
160
- * an expression-statement and a labeled-statement without double lookahead. (ok, maybe not "only")
161
- * @param {boolean} mayParseLabeledStatementInstead=false If the first token is an identifier and the second a colon, accept this match as a labeled statement instead... Only true if the match in the parameter is an (unreserved) identifier (so no need to validate that further)
162
- * @param {Object} match
163
- * @param {Array} stack
164
- * @param {boolean} onlyOne=false Only parse a AssignmentExpression
165
- * @param {boolean} forHeader=false Do not allow the `in` operator
166
- * @param {boolean} isBreakOrContinueArg=false The argument for break or continue is always a single identifier
167
- * @return {Object}
168
- */
169
- eatExpressions: function(mayParseLabeledStatementInstead, match, stack, onlyOne, forHeader, isBreakOrContinueArg){
170
- if (this.ast) { //#ifdef FULL_AST
171
- var pstack = stack;
172
- stack = [];
173
- stack.desc = 'expressions';
174
- stack.nextBlack = match.tokposb;
175
- pstack.push(stack);
176
-
177
- var parsedExpressions = 0;
178
- } //#endif
179
-
180
- var first = true;
181
- do {
182
- var parsedNonAssignmentOperator = false; // once we parse a non-assignment, this expression can no longer parse an assignment
183
- // TOFIX: can probably get the regex out somehow...
184
- if (!first) {
185
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
186
- if (!(/*is left hand side start?*/ match.name <= 6 || this.regexLhsStart.test(match.value))) match = this.failsafe('ExpectedAnotherExpressionComma', match);
187
- }
188
-
189
- if (this.ast) { //#ifdef FULL_AST
190
- ++parsedExpressions;
191
-
192
- var astack = stack;
193
- stack = [];
194
- stack.desc = 'expression';
195
- stack.nextBlack = match.tokposb;
196
- astack.push(stack);
197
- } //#endif
198
-
199
- // start of expression is given: match
200
- // it should indeed be a properly allowed lhs
201
- // first eat all unary operators
202
- // they can be added to the stack, but we need to ensure they have indeed a valid operator
203
-
204
- var parseAnotherExpression = true;
205
- while (parseAnotherExpression) { // keep parsing lhs+operator as long as there is an operator after the lhs.
206
- if (this.ast) { //#ifdef FULL_AST
207
- var estack = stack;
208
- stack = [];
209
- stack.desc = 'sub-expression';
210
- stack.nextBlack = match.tokposb;
211
- estack.push(stack);
212
-
213
- var news = 0; // encountered new operators waiting for parenthesis
214
- } //#endif
215
-
216
- // start checking lhs
217
- // if lhs is identifier (new/call expression), allow to parse an assignment operator next
218
- // otherwise keep eating unary expressions and then any "value"
219
- // after that search for a binary operator. if we only ate a new/call expression then
220
- // also allow to eat assignments. repeat for the rhs.
221
- var parsedUnaryOperator = false;
222
- var isUnary = null;
223
- while (
224
- !isBreakOrContinueArg && // no unary for break/continue
225
- (isUnary =
226
- (match.value && this.hashUnaryKeywordStart[match.value[0]] && this.regexUnaryKeywords.test(match.value)) || // (match.value == 'delete' || match.value == 'void' || match.value == 'typeof' || match.value == 'new') ||
227
- (match.name == 11/*PUNCTUATOR*/ && this.regexUnaryOperators.test(match.value))
228
- )
229
- ) {
230
- if (isUnary) match.isUnaryOp = true;
231
- if (this.ast) { //#ifdef FULL_AST
232
- // find parenthesis
233
- if (match.value == 'new') ++news;
234
- } //#endif
235
-
236
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
237
- // ensure that it is in fact a valid lhs-start
238
- if (!(/*is left hand side start?*/ match.name <= 6 || this.regexLhsStart.test(match.value))) match = this.failsafe('ExpectedAnotherExpressionRhs', match);
239
- // not allowed to parse assignment
240
- parsedUnaryOperator = true;
241
- };
242
-
243
- // if we parsed any kind of unary operator, we cannot be parsing a labeled statement
244
- if (parsedUnaryOperator) mayParseLabeledStatementInstead = false;
245
-
246
- // so now we know match is a valid lhs-start and not a unary operator
247
- // it must be a string, number, regex, identifier
248
- // or the start of an object literal ({), array literal ([) or group operator (().
249
-
250
- var acceptAssignment = false;
251
-
252
- // take care of the "open" cases first (group, array, object)
253
- if (match.value == '(') {
254
- if (this.ast) { //#ifdef FULL_AST
255
- var groupStack = stack;
256
- stack = [];
257
- stack.desc = 'grouped';
258
- stack.nextBlack = match.tokposb;
259
- groupStack.push(stack);
260
-
261
- var lhp = match;
262
-
263
- match.isGroupStart = true;
264
- } //#endif
265
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
266
- if (!(/*is left hand side start?*/ match.name <= 6 || this.regexLhsStart.test(match.value))) match = this.failsafe('GroupingShouldStartWithExpression', match);
267
- // keep parsing expressions as long as they are followed by a comma
268
- match = this.eatExpressions(false, match, stack);
269
-
270
- if (match.value != ')') match = this.failsafe('UnclosedGroupingOperator', match);
271
- if (this.ast) { //#ifdef FULL_AST
272
- match.twin = lhp;
273
- lhp.twin = match;
274
-
275
- match.isGroupStop = true;
276
-
277
- if (stack[stack.length-1].desc == 'expressions') {
278
- // create ref to this expression group to the opening paren
279
- lhp.expressionArg = stack[stack.length-1];
280
- }
281
- } //#endif
282
- match = this.tokenizer.storeCurrentAndFetchNextToken(true, match, stack); // might be div
283
-
284
- if (this.ast) { //#ifdef FULL_AST
285
- stack = groupStack;
286
- } //#endif
287
- // you can assign to group results. and as long as the group does not contain a comma (and valid ref), it will work too :)
288
- acceptAssignment = true;
289
- // there's an extra rule for [ namely that, it must start with an expression but after that, expressions are optional
290
- } else if (match.value == '[') {
291
- if (this.ast) { //#ifdef FULL_AST
292
- stack.sub = 'array literal';
293
- stack.hasArrayLiteral = true;
294
- var lhsb = match;
295
-
296
- match.isArrayLiteralStart = true;
297
-
298
- if (!this.scope.arrays) this.scope.arrays = [];
299
- match.arrayId = this.scope.arrays.length;
300
- this.scope.arrays.push(match);
301
-
302
- match.targetScope = this.scope;
303
- } //#endif
304
- // keep parsing expressions as long as they are followed by a comma
305
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
306
-
307
- // arrays may start with "elided" commas
308
- while (match.value == ',') match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
309
-
310
- var foundAtLeastOneComma = true; // for entry in while
311
- while (foundAtLeastOneComma && match.value != ']') {
312
- foundAtLeastOneComma = false;
313
-
314
- if (!(/*is left hand side start?*/ match.name <= 6 || this.regexLhsStart.test(match.value)) && match.name != 14/*error*/) match = this.failsafe('ArrayShouldStartWithExpression', match);
315
- match = this.eatExpressions(false, match, stack, true);
316
-
317
- while (match.value == ',') {
318
- foundAtLeastOneComma = true;
319
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
320
- }
321
- }
322
- if (match.value != ']') {
323
- match = this.failsafe('UnclosedPropertyBracket', match);
324
- }
325
- if (this.ast) { //#ifdef FULL_AST
326
- match.twin = lhsb;
327
- lhsb.twin = match;
328
-
329
- match.isArrayLiteralStop = true;
330
- } //#endif
331
- match = this.tokenizer.storeCurrentAndFetchNextToken(true, match, stack); // might be div
332
- while (match.value == '++' || match.value == '--') {
333
- // gobble and ignore?
334
- this.failignore('InvalidPostfixOperandArray', match, stack);
335
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
336
- }
337
- // object literals need seperate handling...
338
- } else if (match.value == '{') {
339
- if (this.ast) { //#ifdef FULL_AST
340
- stack.sub = 'object literal';
341
- stack.hasObjectLiteral = true;
342
-
343
- match.isObjectLiteralStart = true;
344
-
345
- if (!this.scope.objects) this.scope.objects = [];
346
- match.objectId = this.scope.objects.length;
347
- this.scope.objects.push(match);
348
-
349
- var targetObject = match;
350
- match.targetScope = this.scope;
351
-
352
- var lhc = match;
353
- } //#endif
354
-
355
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
356
- if (match.name == 12/*eof*/) {
357
- match = this.failsafe('ObjectLiteralExpectsColonAfterName', match);
358
- }
359
- // ObjectLiteral
360
- // PropertyNameAndValueList
361
-
362
- while (match.value != '}' && match.name != 14/*error*/) { // will stop if next token is } or throw if not and no comma is found
363
- // expecting a string, number, or identifier
364
- //if (match.name != 5/*STRING_SINGLE*/ && match.name != 6/*STRING_DOUBLE*/ && match.name != 3/*NUMERIC_HEX*/ && match.name != 4/*NUMERIC_DEC*/ && match.name != 2/*IDENTIFIER*/) {
365
- // TOFIX: more specific errors depending on type...
366
- if (!match.isNumber && !match.isString && match.name != 2/*IDENTIFIER*/) {
367
- match = this.failsafe('IllegalPropertyNameToken', match);
368
- }
369
-
370
- if (this.ast) { //#ifdef FULL_AST
371
- var objLitStack = stack;
372
- stack = [];
373
- stack.desc = 'objlit pair';
374
- stack.isObjectLiteralPair = true;
375
- stack.nextBlack = match.tokposb;
376
- objLitStack.push(stack);
377
-
378
- var propNameStack = stack;
379
- stack = [];
380
- stack.desc = 'objlit pair name';
381
- stack.nextBlack = match.tokposb;
382
- propNameStack.push(stack);
383
-
384
- propNameStack.sub = 'data';
385
-
386
- var propName = match;
387
- propName.isPropertyName = true;
388
- } //#endif
389
-
390
- var getset = match.value;
391
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
392
- if (this.ast) { //#ifdef FULL_AST
393
- stack = propNameStack;
394
- } //#endif
395
-
396
- // for get/set we parse a function-like definition. but only if it's immediately followed by an identifier (otherwise it'll just be the property 'get' or 'set')
397
- if (getset == 'get') {
398
- // "get" PropertyName "(" ")" "{" FunctionBody "}"
399
- if (match.value == ':') {
400
- if (this.ast) { //#ifdef FULL_AST
401
- propName.isPropertyOf = targetObject;
402
- } //#endif
403
- match = this.eatObjectLiteralColonAndBody(match, stack);
404
- } else {
405
- if (this.ast) { //#ifdef FULL_AST
406
- match.isPropertyOf = targetObject;
407
- propNameStack.sub = 'getter';
408
- propNameStack.isAccessor = true;
409
- } //#endif
410
- // if (match.name != 2/*IDENTIFIER*/ && match.name != 5/*STRING_SINGLE*/ && match.name != 6/*STRING_DOUBLE*/ && match.name != 3/*NUMERIC_HEX*/ && match.name != 4/*NUMERIC_DEC*/) {
411
- if (!match.isNumber && !match.isString && match.name != 2/*IDENTIFIER*/) match = this.failsafe('IllegalGetterSetterNameToken', match, true);
412
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
413
- if (match.value != '(') match = this.failsafe('GetterSetterNameFollowedByOpenParen', match);
414
- if (this.ast) { //#ifdef FULL_AST
415
- var lhp = match;
416
- } //#endif
417
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
418
- if (match.value != ')') match = this.failsafe('GetterHasNoArguments', match);
419
- if (this.ast) { //#ifdef FULL_AST
420
- match.twin = lhp;
421
- lhp.twin = match;
422
- } //#endif
423
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
424
- match = this.eatFunctionBody(match, stack);
425
- }
426
- } else if (getset == 'set') {
427
- // "set" PropertyName "(" PropertySetParameterList ")" "{" FunctionBody "}"
428
- if (match.value == ':') {
429
- if (this.ast) { //#ifdef FULL_AST
430
- propName.isPropertyOf = targetObject;
431
- } //#endif
432
- match = this.eatObjectLiteralColonAndBody(match, stack);
433
- } else {
434
- if (this.ast) { //#ifdef FULL_AST
435
- match.isPropertyOf = targetObject;
436
- propNameStack.sub = 'setter';
437
- propNameStack.isAccessor = true;
438
- } //#endif
439
- if (!match.isNumber && !match.isString && match.name != 2/*IDENTIFIER*/) match = this.failsafe('IllegalGetterSetterNameToken', match);
440
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
441
- if (match.value != '(') match = this.failsafe('GetterSetterNameFollowedByOpenParen', match);
442
- if (this.ast) { //#ifdef FULL_AST
443
- var lhp = match;
444
- } //#endif
445
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
446
- if (match.name != 2/*IDENTIFIER*/) {
447
- if (match.value == ')') match = this.failsafe('SettersMustHaveArgument', match);
448
- else match = this.failsafe('IllegalSetterArgumentNameToken', match);
449
- }
450
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
451
- if (match.value != ')') {
452
- if (match.value == ',') match = this.failsafe('SettersOnlyGetOneArgument', match);
453
- else match = this.failsafe('SetterHeaderShouldHaveClosingParen', match);
454
- }
455
- if (this.ast) { //#ifdef FULL_AST
456
- match.twin = lhp;
457
- lhp.twin = match;
458
- } //#endif
459
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
460
- match = this.eatFunctionBody(match, stack);
461
- }
462
- } else {
463
- // PropertyName ":" AssignmentExpression
464
- if (this.ast) { //#ifdef FULL_AST
465
- propName.isPropertyOf = targetObject;
466
- } //#endif
467
- match = this.eatObjectLiteralColonAndBody(match, stack);
468
- }
469
-
470
- if (this.ast) { //#ifdef FULL_AST
471
- stack = objLitStack;
472
- } //#endif
473
-
474
- // one trailing comma allowed
475
- if (match.value == ',') {
476
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
477
- if (match.value == ',') match = this.failsafe('IllegalDoubleCommaInObjectLiteral', match);
478
- } else if (match.value != '}') match = this.failsafe('UnclosedObjectLiteral', match);
479
-
480
- // either the next token is } and the loop breaks or
481
- // the next token is the start of the next PropertyAssignment...
482
- }
483
- // closing curly
484
- if (this.ast) { //#ifdef FULL_AST
485
- match.twin = lhc;
486
- lhc.twin = match;
487
-
488
- match.isObjectLiteralStop = true;
489
- } //#endif
490
-
491
- match = this.tokenizer.storeCurrentAndFetchNextToken(true, match, stack); // next may be div
492
- while (match.value == '++' || match.value == '--') {
493
- this.failignore('InvalidPostfixOperandObject', match, stack);
494
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
495
- }
496
- } else if (match.value == 'function') { // function expression
497
- if (this.ast) { //#ifdef FULL_AST
498
- var oldstack = stack;
499
- stack = [];
500
- stack.desc = 'func expr';
501
- stack.isFunction = true;
502
- stack.nextBlack = match.tokposb;
503
- if (!this.scope.functions) this.scope.functions = [];
504
- match.functionId = this.scope.functions.length;
505
- this.scope.functions.push(match);
506
- oldstack.push(stack);
507
- var oldscope = this.scope;
508
- // add new scope
509
- match.scope = stack.scope = this.scope = [
510
- this.scope,
511
- {value:'this', isDeclared:true, isEcma:true, functionStack: stack},
512
- {value:'arguments', isDeclared:true, isEcma:true, varType:['Object']}
513
- ]; // add the current scope (to build chain up-down)
514
- this.scope.upper = oldscope;
515
- // ref to back to function that's the cause for this scope
516
- this.scope.scopeFor = match;
517
- match.targetScope = oldscope; // consistency
518
- match.isFuncExprKeyword = true;
519
- match.functionStack = stack;
520
- } //#endif
521
- var funcExprToken = match;
522
-
523
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
524
- if (mayParseLabeledStatementInstead && match.value == ':') match = this.failsafe('LabelsMayNotBeReserved', match);
525
- if (match.name == 2/*IDENTIFIER*/) {
526
- funcExprToken.funcName = match;
527
- match.meta = "func expr name";
528
- match.varType = ['Function'];
529
- match.functionStack = stack; // ref to the stack, in case we detect the var being a constructor
530
- if (this.ast) { //#ifdef FULL_AST
531
- // name is only available to inner scope
532
- this.scope.push({value:match.value});
533
- } //#endif
534
- if (this.hashStartKeyOrReserved[match.value[0]] /*this.regexStartKeyOrReserved.test(match.value[0])*/ && this.regexIsKeywordOrReserved.test(match.value)) match = this.failsafe('FunctionNameMustNotBeReserved', match);
535
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
536
- }
537
- match = this.eatFunctionParametersAndBody(match, stack, true, funcExprToken); // first token after func-expr is div
538
-
539
- while (match.value == '++' || match.value == '--') {
540
- this.failignore('InvalidPostfixOperandFunction', match, stack);
541
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
542
- }
543
-
544
- if (this.ast) { //#ifdef FULL_AST
545
- // restore stack and scope
546
- stack = oldstack;
547
- this.scope = oldscope;
548
- } //#endif
549
- } else if (match.name <= 6) { // IDENTIFIER STRING_SINGLE STRING_DOUBLE NUMERIC_HEX NUMERIC_DEC REG_EX
550
- // save it in case it turns out to be a label.
551
- var possibleLabel = match;
552
-
553
- // validate the identifier, if any
554
- if (match.name == 2/*IDENTIFIER*/) {
555
- if (
556
- // this, null, true, false are actually allowed here
557
- !this.regexLiteralKeywords.test(match.value) &&
558
- // other reserved words are not
559
- this.hashStartKeyOrReserved[match.value[0]] /*this.regexStartKeyOrReserved.test(match.value[0])*/ && this.regexIsKeywordOrReserved.test(match.value)
560
- ) {
561
- // if break/continue, we skipped the unary operator check so throw the proper error here
562
- if (isBreakOrContinueArg) {
563
- this.failignore('BreakOrContinueArgMustBeJustIdentifier', match, stack);
564
- } else if (match.value == 'else') {
565
- this.failignore('DidNotExpectElseHere', match, stack);
566
- } else {
567
- //if (mayParseLabeledStatementInstead) {new ZeParser.Error('LabelsMayNotBeReserved', match);
568
- // TOFIX: lookahead to see if colon is following. throw label error instead if that's the case
569
- // any forbidden keyword at this point is likely to be a statement start.
570
- // its likely that the parser will take a while to recover from this point...
571
- this.failignore('UnexpectedToken', match, stack);
572
- // TOFIX: maybe i should just return at this point. cut my losses and hope for the best.
573
- }
574
- }
575
-
576
- // only accept assignments after a member expression (identifier or ending with a [] suffix)
577
- acceptAssignment = true;
578
- } else if (isBreakOrContinueArg) match = this.failsafe('BreakOrContinueArgMustBeJustIdentifier', match);
579
-
580
- // the current match is the lead value being queried. tag it that way
581
- if (this.ast) { //#ifdef FULL_AST
582
- // dont mark labels
583
- if (!isBreakOrContinueArg) {
584
- match.meta = 'lead value';
585
- match.leadValue = true;
586
- }
587
- } //#endif
588
-
589
-
590
- // ok. gobble it.
591
- match = this.tokenizer.storeCurrentAndFetchNextToken(true, match, stack); // division allowed
592
-
593
- // now check for labeled statement (if mayParseLabeledStatementInstead then the first token for this expression must be an (unreserved) identifier)
594
- if (mayParseLabeledStatementInstead && match.value == ':') {
595
- if (possibleLabel.name != 2/*IDENTIFIER*/) {
596
- // label was not an identifier
597
- // TOFIX: this colon might be a different type of error... more analysis required
598
- this.failignore('LabelsMayOnlyBeIdentifiers', match, stack);
599
- }
600
-
601
- mayParseLabeledStatementInstead = true; // mark label parsed (TOFIX:speed?)
602
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
603
-
604
- possibleLabel.isLabel = true;
605
- if (this.ast) { //#ifdef FULL_AST
606
- delete possibleLabel.meta; // oh oops, it's not a lead value.
607
-
608
- possibleLabel.isLabelDeclaration = true;
609
- this.statementLabels.push(possibleLabel.value);
610
-
611
- stack.desc = 'labeled statement';
612
- } //#endif
613
-
614
- var errorIdToReplace = this.errorStack.length;
615
- // eat another statement now, its the body of the labeled statement (like if and while)
616
- match = this.eatStatement(false, match, stack);
617
-
618
- // if no statement was found, check here now and correct error
619
- if (match.error && match.error.msg == ZeParser.Errors.UnableToParseStatement.msg) {
620
- // replace with better error...
621
- match.error = new ZeParser.Error('LabelRequiresStatement');
622
- // also replace on stack
623
- this.errorStack[errorIdToReplace] = match.error;
624
- }
625
-
626
- match.wasLabel = true;
627
-
628
- return match;
629
- }
630
-
631
- mayParseLabeledStatementInstead = false;
632
- } else if (match.value == '}') {
633
- // ignore... its certainly the end of this expression, but maybe asi can be applied...
634
- // it might also be an object literal expecting more, but that case has been covered else where.
635
- // if it turns out the } is bad after all, .parse() will try to recover
636
- } else if (match.name == 14/*error*/) {
637
- do {
638
- if (match.tokenError) {
639
- var pe = new ZeParser.Error('TokenizerError', match);
640
- pe.msg += ': '+match.error.msg;
641
- this.errorStack.push(pe);
642
-
643
- this.failSpecial({start:match.start,stop:match.start,name:14/*error*/,error:pe}, match, stack)
644
- }
645
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
646
- } while (match.name == 14/*error*/);
647
- } else if (match.name == 12/*eof*/) {
648
- // cant parse any further. you're probably just typing...
649
- return match;
650
- } else {
651
- //if (!this.errorStack.length && match.name != 12/*eof*/) console.log(["unknown token", match, stack, Gui.escape(this.input)]);
652
- this.failignore('UnknownToken', match, stack);
653
- // we cant really ignore this. eat the token and try again. possibly you're just typing?
654
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
655
- }
656
-
657
- // search for "value" suffix. property access and call parens.
658
- while (match.value == '.' || match.value == '[' || match.value == '(') {
659
- if (isBreakOrContinueArg) match = this.failsafe('BreakOrContinueArgMustBeJustIdentifier', match);
660
-
661
- if (match.value == '.') {
662
- // property access. read in an IdentifierName (no keyword checks). allow assignments
663
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
664
- if (match.name != 2/*IDENTIFIER*/) this.failignore('PropertyNamesMayOnlyBeIdentifiers', match, stack);
665
- if (this.ast) { //#ifdef FULL_AST
666
- match.isPropertyName = true;
667
- } //#endif
668
- match = this.tokenizer.storeCurrentAndFetchNextToken(true, match, stack); // may parse div
669
- acceptAssignment = true;
670
- } else if (match.value == '[') {
671
- if (this.ast) { //#ifdef FULL_AST
672
- var lhsb = match;
673
- match.propertyAccessStart = true;
674
- } //#endif
675
- // property access, read expression list. allow assignments
676
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
677
- if (!(/*is left hand side start?*/ match.name <= 6 || this.regexLhsStart.test(match.value))) {
678
- if (match.value == ']') match = this.failsafe('SquareBracketsMayNotBeEmpty', match);
679
- else match = this.failsafe('SquareBracketExpectsExpression', match);
680
- }
681
- match = this.eatExpressions(false, match, stack);
682
- if (match.value != ']') match = this.failsafe('UnclosedSquareBrackets', match);
683
- if (this.ast) { //#ifdef FULL_AST
684
- match.twin = lhsb;
685
- match.propertyAccessStop = true;
686
- lhsb.twin = match;
687
-
688
- if (stack[stack.length-1].desc == 'expressions') {
689
- // create ref to this expression group to the opening bracket
690
- lhsb.expressionArg = stack[stack.length-1];
691
- }
692
- } //#endif
693
- match = this.tokenizer.storeCurrentAndFetchNextToken(true, match, stack); // might be div
694
- acceptAssignment = true;
695
- } else if (match.value == '(') {
696
- if (this.ast) { //#ifdef FULL_AST
697
- var lhp = match;
698
- match.isCallExpressionStart = true;
699
- if (news) {
700
- match.parensBelongToNew = true;
701
- --news;
702
- }
703
- } //#endif
704
- // call expression, eat optional expression list, disallow assignments
705
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
706
- if (/*is left hand side start?*/ match.name <= 6 || this.regexLhsStart.test(match.value)) match = this.eatExpressions(false, match, stack); // arguments are optional
707
- if (match.value != ')') match = this.failsafe('UnclosedCallParens', match);
708
- if (this.ast) { //#ifdef FULL_AST
709
- match.twin = lhp;
710
- lhp.twin = match;
711
- match.isCallExpressionStop = true;
712
-
713
- if (stack[stack.length-1].desc == 'expressions') {
714
- // create ref to this expression group to the opening bracket
715
- lhp.expressionArg = stack[stack.length-1];
716
- }
717
- } //#endif
718
- match = this.tokenizer.storeCurrentAndFetchNextToken(true, match, stack); // might be div
719
- acceptAssignment = false;
720
- }
721
- }
722
-
723
- // check for postfix operators ++ and --
724
- // they are stronger than the + or - binary operators
725
- // they can be applied to any lhs (even when it wouldnt make sense)
726
- // if there was a newline, it should get an ASI
727
- if ((match.value == '++' || match.value == '--') && !match.newline) {
728
- if (isBreakOrContinueArg) match = this.failsafe('BreakOrContinueArgMustBeJustIdentifier', match);
729
- match = this.tokenizer.storeCurrentAndFetchNextToken(true, match, stack); // may parse div
730
- }
731
-
732
- if (this.ast) { //#ifdef FULL_AST
733
- // restore "expression" stack
734
- stack = estack;
735
- } //#endif
736
- // now see if there is an operator following...
737
-
738
- do { // this do allows us to parse multiple ternary expressions in succession without screwing up.
739
- var ternary = false;
740
- if (
741
- (!forHeader && match.value == 'in') || // one of two named binary operators, may not be first expression in for-header (when semi's occur in the for-header)
742
- (match.value == 'instanceof') || // only other named binary operator
743
- ((match.name == 11/*PUNCTUATOR*/) && // we can only expect a punctuator now
744
- (match.isAssignment = this.regexAssignments.test(match.value)) || // assignments are only okay with proper lhs
745
- this.regexNonAssignmentBinaryExpressionOperators.test(match.value) // test all other binary operators
746
- )
747
- ) {
748
- if (match.isAssignment) {
749
- if (!acceptAssignment) this.failignore('IllegalLhsForAssignment', match, stack);
750
- else if (parsedNonAssignmentOperator) this.failignore('AssignmentNotAllowedAfterNonAssignmentInExpression', match, stack);
751
- }
752
- if (isBreakOrContinueArg) match = this.failsafe('BreakOrContinueArgMustBeJustIdentifier', match);
753
-
754
- if (!match.isAssignment) parsedNonAssignmentOperator = true; // last allowed assignment
755
- if (this.ast) { //#ifdef FULL_AST
756
- match.isBinaryOperator = true;
757
- // we build a stack to ensure any whitespace doesnt break the 1+(n*2) children rule for expressions
758
- var ostack = stack;
759
- stack = [];
760
- stack.desc = 'operator-expression';
761
- stack.isBinaryOperator = true;
762
- stack.sub = match.value;
763
- stack.nextBlack = match.tokposb;
764
- ostack.sub = match.value;
765
- stack.isAssignment = match.isAssignment;
766
- ostack.push(stack);
767
- } //#endif
768
- ternary = match.value == '?';
769
- // math, logic, assignment or in or instanceof
770
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
771
-
772
- if (this.ast) { //#ifdef FULL_AST
773
- // restore "expression" stack
774
- stack = ostack;
775
- } //#endif
776
-
777
- // minor exception to ternary operator, we need to parse two expressions nao. leave the trailing expression to the loop.
778
- if (ternary) {
779
- // LogicalORExpression "?" AssignmentExpression ":" AssignmentExpression
780
- // so that means just one expression center and right.
781
- if (!(/*is left hand side start?*/ match.name <= 6 || this.regexLhsStart.test(match.value))) this.failignore('InvalidCenterTernaryExpression', match, stack);
782
- match = this.eatExpressions(false, match, stack, true, forHeader); // only one expression allowed inside ternary center/right
783
-
784
- if (match.value != ':') {
785
- if (match.value == ',') match = this.failsafe('TernarySecondExpressionCanNotContainComma', match);
786
- else match = this.failsafe('UnfinishedTernaryOperator', match);
787
- }
788
- if (this.ast) { //#ifdef FULL_AST
789
- // we build a stack to ensure any whitespace doesnt break the 1+(n*2) children rule for expressions
790
- var ostack = stack;
791
- stack = [];
792
- stack.desc = 'operator-expression';
793
- stack.sub = match.value;
794
- stack.nextBlack = match.tokposb;
795
- ostack.sub = match.value;
796
- stack.isAssignment = match.isAssignment;
797
- ostack.push(stack);
798
- } //#endif
799
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
800
- if (this.ast) { //#ifdef FULL_AST
801
- stack = ostack;
802
- } //#endif
803
- // rhs of the ternary can not contain a comma either
804
- match = this.eatExpressions(false, match, stack, true, forHeader); // only one expression allowed inside ternary center/right
805
- }
806
- } else {
807
- parseAnotherExpression = false;
808
- }
809
- } while (ternary); // if we just parsed a ternary expression, we need to check _again_ whether the next token is a binary operator.
810
-
811
- // start over. match is the rhs for the lhs we just parsed, but lhs for the next expression
812
- if (parseAnotherExpression && !(/*is left hand side start?*/ match.name <= 6 || this.regexLhsStart.test(match.value))) {
813
- // no idea what to do now. lets just ignore and see where it ends. TOFIX: maybe just break the loop or return?
814
- this.failignore('InvalidRhsExpression', match, stack);
815
- }
816
- }
817
-
818
- if (this.ast) { //#ifdef FULL_AST
819
- // restore "expressions" stack
820
- stack = astack;
821
- } //#endif
822
-
823
- // at this point we should have parsed one AssignmentExpression
824
- // lets see if we can parse another one...
825
- mayParseLabeledStatementInstead = first = false;
826
- } while (!onlyOne && match.value == ',');
827
-
828
- if (this.ast) { //#ifdef FULL_AST
829
- // remove empty array
830
- if (!stack.length) pstack.length = pstack.length-1;
831
- pstack.numberOfExpressions = parsedExpressions;
832
- if (pstack[0]) pstack[0].numberOfExpressions = parsedExpressions;
833
- stack.expressionCount = parsedExpressions;
834
- } //#endif
835
- return match;
836
- },
837
- eatFunctionDeclaration: function(match, stack){
838
- if (this.ast) { //#ifdef FULL_AST
839
- stack.push(stack = []);
840
- var prevscope = this.scope;
841
- stack.desc = 'func decl';
842
- stack.isFunction = true;
843
- stack.nextBlack = match.tokposb;
844
- if (!this.scope.functions) this.scope.functions = [];
845
- match.functionId = this.scope.functions.length;
846
- this.scope.functions.push(match);
847
- // add new scope
848
- match.scope = stack.scope = this.scope = [
849
- this.scope, // add current scope (build scope chain up-down)
850
- // Object.create(null,
851
- {value:'this', isDeclared:true, isEcma:true, functionStack:stack},
852
- // Object.create(null,
853
- {value:'arguments', isDeclared:true, isEcma:true, varType:['Object']}
854
- ];
855
- // ref to back to function that's the cause for this scope
856
- this.scope.scopeFor = match;
857
- match.targetScope = prevscope; // consistency
858
-
859
- match.functionStack = stack;
860
-
861
- match.isFuncDeclKeyword = true;
862
- } //#endif
863
- // only place that this function is used already checks whether next token is function
864
- var functionKeyword = match;
865
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
866
- if (match.name != 2/*IDENTIFIER*/) match = this.failsafe('FunctionDeclarationsMustHaveName', match);
867
- if (this.hashStartKeyOrReserved[match.value[0]] /*this.regexStartKeyOrReserved.test(match.value[0])*/ && this.regexIsKeywordOrReserved.test(match.value)) this.failignore('FunctionNameMayNotBeReserved', match, stack);
868
- if (this.ast) { //#ifdef FULL_AST
869
- functionKeyword.funcName = match;
870
- prevscope.push({value:match.value});
871
- match.meta = 'func decl name'; // that's what it is, really
872
- match.varType = ['Function'];
873
- match.functionStack = stack;
874
- } //#endif
875
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
876
- match = this.eatFunctionParametersAndBody(match, stack, false, functionKeyword); // first token after func-decl is regex
877
- if (this.ast) { //#ifdef FULL_AST
878
- // restore previous scope
879
- this.scope = prevscope;
880
- } //#endif
881
- return match;
882
- },
883
- eatObjectLiteralColonAndBody: function(match, stack){
884
- if (this.ast) { //#ifdef FULL_AST
885
- var propValueStack = stack;
886
- stack = [];
887
- stack.desc = 'objlit pair colon';
888
- stack.nextBlack = match.tokposb;
889
- propValueStack.push(stack);
890
- } //#endif
891
- if (match.value != ':') match = this.failsafe('ObjectLiteralExpectsColonAfterName', match);
892
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
893
- if (this.ast) { //#ifdef FULL_AST
894
- stack = propValueStack;
895
- } //#endif
896
-
897
- // this might actually fail due to ASI optimization.
898
- // if the property name does not exist and it is the last item
899
- // of the objlit, the expression parser will see an unexpected
900
- // } and ignore it, giving some leeway to apply ASI. of course,
901
- // that doesnt work for objlits. but we dont want to break the
902
- // existing mechanisms. so we check this differently... :)
903
- var prevMatch = match;
904
- match = this.eatExpressions(false, match, stack, true); // only one expression
905
- if (match == prevMatch) match = this.failsafe('ObjectLiteralMissingPropertyValue', match);
906
-
907
- return match;
908
- },
909
- eatFunctionParametersAndBody: function(match, stack, div, funcToken){
910
- // div: the first token _after_ a function expression may be a division...
911
- if (match.value != '(') match = this.failsafe('ExpectingFunctionHeaderStart', match);
912
- else if (this.ast) { //#ifdef FULL_AST
913
- var lhp = match;
914
- funcToken.lhp = match;
915
- } //#endif
916
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
917
- if (match.name == 2/*IDENTIFIER*/) { // params
918
- if (this.hashStartKeyOrReserved[match.value[0]] /*this.regexStartKeyOrReserved.test(match.value[0])*/ && this.regexIsKeywordOrReserved.test(match.value)) this.failignore('FunctionArgumentsCanNotBeReserved', match, stack);
919
- if (this.ast) { //#ifdef FULL_AST
920
- if (!funcToken.paramNames) funcToken.paramNames = [];
921
- stack.paramNames = funcToken.paramNames;
922
- funcToken.paramNames.push(match);
923
- this.scope.push({value:match.value}); // add param name to scope
924
- match.meta = 'parameter';
925
- } //#endif
926
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
927
- while (match.value == ',') {
928
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
929
- if (match.name != 2/*IDENTIFIER*/) {
930
- // example: if name is 12, the source is incomplete...
931
- this.failignore('FunctionParametersMustBeIdentifiers', match, stack);
932
- } else if (this.hashStartKeyOrReserved[match.value[0]] /*this.regexStartKeyOrReserved.test(match.value[0])*/ && this.regexIsKeywordOrReserved.test(match.value)) {
933
- this.failignore('FunctionArgumentsCanNotBeReserved', match, stack);
934
- }
935
- if (this.ast) { //#ifdef FULL_AST
936
- // Object.create(null,
937
- this.scope.push({value:match.value}); // add param name to scope
938
- match.meta = 'parameter';
939
- if (match.name == 2/*IDENTIFIER*/) funcToken.paramNames.push(match);
940
- } //#endif
941
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
942
- }
943
- }
944
- if (this.ast) { //#ifdef FULL_AST
945
- if (lhp) {
946
- match.twin = lhp;
947
- lhp.twin = match;
948
- funcToken.rhp = match;
949
- }
950
- } //#endif
951
- if (match.value != ')') match = this.failsafe('ExpectedFunctionHeaderClose', match); // TOFIX: can be various things here...
952
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
953
- match = this.eatFunctionBody(match, stack, div, funcToken);
954
- return match;
955
- },
956
- eatFunctionBody: function(match, stack, div, funcToken){
957
- if (this.ast) { //#ifdef FULL_AST
958
- stack.push(stack = []);
959
- stack.desc = 'func body';
960
- stack.nextBlack = match.tokposb;
961
-
962
- // create EMPTY list of functions. labels cannot cross function boundaries
963
- var labelBackup = this.statementLabels;
964
- this.statementLabels = [];
965
- stack.labels = this.statementLabels;
966
- } //#endif
967
-
968
- // if div, a division can occur _after_ this function expression
969
- //this.stats.eatFunctionBody = (+//this.stats.eatFunctionBody||0)+1;
970
- if (match.value != '{') match = this.failsafe('ExpectedFunctionBodyCurlyOpen', match);
971
- if (this.ast) { //#ifdef FULL_AST
972
- var lhc = match;
973
- if (funcToken) funcToken.lhc = lhc;
974
- } //#endif
975
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
976
- match = this.eatSourceElements(match, stack);
977
- if (match.value != '}') match = this.failsafe('ExpectedFunctionBodyCurlyClose', match);
978
- if (this.ast) { //#ifdef FULL_AST
979
- match.twin = lhc;
980
- lhc.twin = match;
981
- if (funcToken) funcToken.rhc = match;
982
- } //#endif
983
- match = this.tokenizer.storeCurrentAndFetchNextToken(div, match, stack);
984
-
985
- if (this.ast) { //#ifdef FULL_AST
986
- // restore label set
987
- this.statementLabels = labelBackup;
988
- } //#endif
989
-
990
- return match;
991
- },
992
- eatVar: function(match, stack){
993
- if (this.ast) { //#ifdef FULL_AST
994
- stack.push(stack = []);
995
- stack.desc = 'statement';
996
- stack.sub = 'var';
997
- stack.nextBlack = match.tokposb;
998
- match.stack = stack;
999
- match.isVarKeyword = true;
1000
- } //#endif
1001
- match = this.eatVarDecl(match, stack);
1002
- match = this.eatSemiColon(match, stack);
1003
-
1004
- return match;
1005
- },
1006
- eatVarDecl: function(match, stack, forHeader){
1007
- // assumes match is indeed the identifier 'var'
1008
- if (this.ast) { //#ifdef FULL_AST
1009
- stack.push(stack = []);
1010
- stack.desc = 'var decl';
1011
- stack.nextBlack = match.tokposb;
1012
-
1013
- var targetScope = this.scope;
1014
- while (targetScope.catchScope) targetScope = targetScope[0];
1015
- } //#endif
1016
- var first = true;
1017
- var varsDeclared = 0;
1018
- do {
1019
- ++varsDeclared;
1020
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack); // start: var, iteration: comma
1021
- if (this.ast) { //#ifdef FULL_AST
1022
- var declStack = stack;
1023
- var stack = [];
1024
- stack.desc = 'single var decl';
1025
- stack.varStack = declStack; // reference to the var statement stack, it might hook to jsdoc needed for these vars
1026
- stack.nextBlack = match.tokposb;
1027
- declStack.push(stack);
1028
-
1029
- var singleDecStack = stack;
1030
- stack = [];
1031
- stack.desc = 'sub-expression';
1032
- stack.nextBlack = match.tokposb;
1033
- singleDecStack.push(stack);
1034
- } //#endif
1035
-
1036
- // next token should be a valid identifier
1037
- if (match.name == 12/*eof*/) {
1038
- if (first) match = this.failsafe('VarKeywordMissingName', match);
1039
- // else, ignore. TOFIX: return?
1040
- else match = this.failsafe('IllegalTrailingComma', match);
1041
- } else if (match.name != 2/*IDENTIFIER*/) {
1042
- match = this.failsafe('VarNamesMayOnlyBeIdentifiers', match);
1043
- } else if (this.hashStartKeyOrReserved[match.value[0]] /*this.regexStartKeyOrReserved.test(match.value[0])*/ && this.regexIsKeywordOrReserved.test(match.value)) {
1044
- match = this.failsafe('VarNamesCanNotBeReserved', match);
1045
- }
1046
- // mark the match as being a variable name. we need it for lookup later :)
1047
- if (this.ast) { //#ifdef FULL_AST
1048
- match.meta = 'var name';
1049
- targetScope.push({value:match.value});
1050
- } //#endif
1051
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1052
-
1053
- if (this.ast) { //#ifdef FULL_AST
1054
- stack = singleDecStack;
1055
- } //#endif
1056
-
1057
- // next token should either be a = , or ;
1058
- // if = parse an expression and optionally a comma
1059
- if (match.value == '=') {
1060
- if (this.ast) { //#ifdef FULL_AST
1061
- singleDecStack = stack;
1062
- stack = [];
1063
- stack.desc = 'operator-expression';
1064
- stack.sub = '=';
1065
- stack.nextBlack = match.tokposb;
1066
- singleDecStack.push(stack);
1067
-
1068
- stack.isAssignment = true;
1069
- } //#endif
1070
- match.isInitialiser = true;
1071
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1072
- if (this.ast) { //#ifdef FULL_AST
1073
- stack = singleDecStack;
1074
- } //#endif
1075
-
1076
- if (!(/*is left hand side start?*/ match.name <= 6 || match.name == 14/*error*/ || this.regexLhsStart.test(match.value))) match = this.failsafe('VarInitialiserExpressionExpected', match);
1077
- match = this.eatExpressions(false, match, stack, true, forHeader); // only one expression
1078
- // var statement: comma or semi now
1079
- // for statement: semi, comma or 'in'
1080
- }
1081
- if (this.ast) { //#ifdef FULL_AST
1082
- stack = declStack;
1083
- } //#endif
1084
-
1085
- // determines proper error message in one case
1086
- first = false;
1087
- // keep parsing name(=expression) sequences as long as you see a comma here
1088
- } while (match.value == ',');
1089
-
1090
- if (this.ast) { //#ifdef FULL_AST
1091
- stack.varsDeclared = varsDeclared;
1092
- } //#endif
1093
-
1094
- return match;
1095
- },
1096
-
1097
- eatIf: function(match, stack){
1098
- if (this.ast) { //#ifdef FULL_AST
1099
- stack.push(stack = []);
1100
- stack.desc = 'statement';
1101
- stack.sub = 'if';
1102
- stack.hasElse = false;
1103
- stack.nextBlack = match.tokposb;
1104
- } //#endif
1105
- // (
1106
- // expression
1107
- // )
1108
- // statement
1109
- // [else statement]
1110
- var ifKeyword = match;
1111
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1112
- if (match.value != '(') match = this.failsafe('ExpectedStatementHeaderOpen', match);
1113
- if (this.ast) { //#ifdef FULL_AST
1114
- var lhp = match;
1115
- match.statementHeaderStart = true;
1116
- } //#endif
1117
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1118
- if (!(/*is left hand side start?*/ match.name <= 6 || this.regexLhsStart.test(match.value))) match = this.failsafe('StatementHeaderIsNotOptional', match);
1119
- match = this.eatExpressions(false, match, stack);
1120
- if (match.value != ')') match = this.failsafe('ExpectedStatementHeaderClose', match);
1121
- if (this.ast) { //#ifdef FULL_AST
1122
- match.twin = lhp;
1123
- match.statementHeaderStop = true;
1124
- lhp.twin = match;
1125
-
1126
- if (stack[stack.length-1].desc == 'expressions') {
1127
- // create ref to this expression group to the opening bracket
1128
- lhp.expressionArg = stack[stack.length-1];
1129
- }
1130
- } //#endif
1131
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1132
- match = this.eatStatement(false, match, stack);
1133
-
1134
- // match might be null here... (if the if-statement was end part of the source)
1135
- if (match && match.value == 'else') {
1136
- if (this.ast) { //#ifdef FULL_AST
1137
- ifKeyword.hasElse = match;
1138
- } //#endif
1139
- match = this.eatElse(match, stack);
1140
- }
1141
-
1142
- return match;
1143
- },
1144
- eatElse: function(match, stack){
1145
- if (this.ast) { //#ifdef FULL_AST
1146
- stack.hasElse = true;
1147
- stack.push(stack = []);
1148
- stack.desc = 'statement';
1149
- stack.sub = 'else';
1150
- stack.nextBlack = match.tokposb;
1151
- } //#endif
1152
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1153
- match = this.eatStatement(false, match, stack);
1154
-
1155
- return match;
1156
- },
1157
- eatDo: function(match, stack){
1158
- if (this.ast) { //#ifdef FULL_AST
1159
- stack.push(stack = []);
1160
- stack.desc = 'statement';
1161
- stack.sub = 'do';
1162
- stack.isIteration = true;
1163
- stack.nextBlack = match.tokposb;
1164
- this.statementLabels.push(''); // add "empty"
1165
- var doToken = match;
1166
- } //#endif
1167
- // statement
1168
- // while
1169
- // (
1170
- // expression
1171
- // )
1172
- // semi-colon
1173
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1174
- match = this.eatStatement(false, match, stack);
1175
- if (match.value != 'while') match = this.failsafe('DoShouldBeFollowedByWhile', match);
1176
- if (this.ast) { //#ifdef FULL_AST
1177
- match.hasDo = doToken;
1178
- } //#endif
1179
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1180
- if (match.value != '(') match = this.failsafe('ExpectedStatementHeaderOpen', match);
1181
- if (this.ast) { //#ifdef FULL_AST
1182
- var lhp = match;
1183
- match.statementHeaderStart = true;
1184
- } //#endif
1185
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1186
- if (!(/*is left hand side start?*/ match.name <= 6 || this.regexLhsStart.test(match.value))) match = this.failsafe('StatementHeaderIsNotOptional', match);
1187
- match = this.eatExpressions(false, match, stack);
1188
- if (match.value != ')') match = this.failsafe('ExpectedStatementHeaderClose', match);
1189
- if (this.ast) { //#ifdef FULL_AST
1190
- match.twin = lhp;
1191
- match.statementHeaderStop = true;
1192
- match.isForDoWhile = true; // prevents missing block warnings
1193
- lhp.twin = match;
1194
-
1195
- if (stack[stack.length-1].desc == 'expressions') {
1196
- // create ref to this expression group to the opening bracket
1197
- lhp.expressionArg = stack[stack.length-1];
1198
- }
1199
- } //#endif
1200
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1201
- match = this.eatSemiColon(match, stack); // TOFIX: this is not optional according to the spec, but browsers apply ASI anyways
1202
-
1203
- return match;
1204
- },
1205
- eatWhile: function(match, stack){
1206
- if (this.ast) { //#ifdef FULL_AST
1207
- stack.push(stack = []);
1208
- stack.desc = 'statement';
1209
- stack.sub = 'while';
1210
- stack.isIteration = true;
1211
- stack.nextBlack = match.tokposb;
1212
- this.statementLabels.push(''); // add "empty"
1213
- } //#endif
1214
-
1215
- // (
1216
- // expression
1217
- // )
1218
- // statement
1219
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1220
- if (match.value != '(') match = this.failsafe('ExpectedStatementHeaderOpen', match);
1221
- if (this.ast) { //#ifdef FULL_AST
1222
- var lhp = match;
1223
- match.statementHeaderStart = true;
1224
- } //#endif
1225
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1226
- if (!(/*is left hand side start?*/ match.name <= 6 || this.regexLhsStart.test(match.value))) match = this.failsafe('StatementHeaderIsNotOptional', match);
1227
- match = this.eatExpressions(false, match, stack);
1228
- if (match.value != ')') match = this.failsafe('ExpectedStatementHeaderClose', match);
1229
- if (this.ast) { //#ifdef FULL_AST
1230
- match.twin = lhp;
1231
- match.statementHeaderStop = true;
1232
- lhp.twin = match;
1233
-
1234
- if (stack[stack.length-1].desc == 'expressions') {
1235
- // create ref to this expression group to the opening bracket
1236
- lhp.expressionArg = stack[stack.length-1];
1237
- }
1238
- } //#endif
1239
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1240
- match = this.eatStatement(false, match, stack);
1241
-
1242
- return match;
1243
- },
1244
-
1245
- eatFor: function(match, stack){
1246
- if (this.ast) { //#ifdef FULL_AST
1247
- stack.push(stack = []);
1248
- stack.desc = 'statement';
1249
- stack.sub = 'for';
1250
- stack.isIteration = true;
1251
- stack.nextBlack = match.tokposb;
1252
- this.statementLabels.push(''); // add "empty"
1253
- } //#endif
1254
- // either a for(..in..) or for(..;..;..)
1255
- // start eating an expression but refuse to parse
1256
- // 'in' on the top-level of that expression. they are fine
1257
- // in sub-levels (group, array, etc). Now the expression
1258
- // must be followed by either ';' or 'in'. Else throw.
1259
- // Branch on that case, ; requires two.
1260
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1261
- if (match.value != '(') match = this.failsafe('ExpectedStatementHeaderOpen', match);
1262
- if (this.ast) { //#ifdef FULL_AST
1263
- var lhp = match;
1264
- match.statementHeaderStart = true;
1265
- match.forHeaderStart = true;
1266
- } //#endif
1267
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1268
-
1269
- // for (either case) may start with var, in which case you'll parse a var declaration before encountering the 'in' or first semi.
1270
- if (match.value == 'var') {
1271
- match = this.eatVarDecl(match, stack, true);
1272
- } else if (match.value != ';') { // expressions are optional in for-each
1273
- if (!(/*is left hand side start?*/ match.name <= 6 || this.regexLhsStart.test(match.value))) {
1274
- this.failignore('StatementHeaderIsNotOptional', match, stack);
1275
- }
1276
- match = this.eatExpressions(false, match, stack, false, true); // can parse multiple expressions, in is not ok here
1277
- }
1278
-
1279
- // now we parsed an expression if it existed. the next token should be either ';' or 'in'. branch accordingly
1280
- if (match.value == 'in') {
1281
- var declStack = stack[stack.length-1];
1282
- if (declStack.varsDeclared > 1) {
1283
- // disallowed. for-in var decls can only have one var name declared
1284
- this.failignore('ForInCanOnlyDeclareOnVar', match, stack);
1285
- }
1286
-
1287
- if (this.ast) { //#ifdef FULL_AST
1288
- stack.forType = 'in';
1289
- match.forFor = true; // make easy distinction between conditional and iterational operator
1290
- } //#endif
1291
-
1292
- // just parse another expression, where 'in' is allowed.
1293
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1294
- match = this.eatExpressions(false, match, stack);
1295
- } else {
1296
- if (match.value != ';') match = this.failsafe('ForHeaderShouldHaveSemisOrIn', match);
1297
-
1298
- if (this.ast) { //#ifdef FULL_AST
1299
- stack.forType = 'each';
1300
- match.forEachHeaderStart = true;
1301
- } //#endif
1302
- // parse another optional no-in expression, another semi and then one more optional no-in expression
1303
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1304
- if (/*is left hand side start?*/ match.name <= 6 || this.regexLhsStart.test(match.value)) match = this.eatExpressions(false, match, stack); // in is ok here
1305
- if (match.value != ';') match = this.failsafe('ExpectedSecondSemiOfForHeader', match);
1306
- if (this.ast) { //#ifdef FULL_AST
1307
- match.forEachHeaderStop = true;
1308
- } //#endif
1309
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1310
- if (/*is left hand side start?*/ match.name <= 6 || this.regexLhsStart.test(match.value)) match = this.eatExpressions(false, match, stack); // in is ok here
1311
- }
1312
-
1313
- if (match.value != ')') match = this.failsafe('ExpectedStatementHeaderClose', match);
1314
- if (this.ast) { //#ifdef FULL_AST
1315
- match.twin = lhp;
1316
- match.statementHeaderStop = true;
1317
- match.forHeaderStop = true;
1318
- lhp.twin = match;
1319
-
1320
- if (match.forType == 'in' && stack[stack.length-1].desc == 'expressions') {
1321
- // create ref to this expression group to the opening bracket
1322
- lhp.expressionArg = stack[stack.length-1];
1323
- }
1324
- } //#endif
1325
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1326
-
1327
- match = this.eatStatement(false, match, stack);
1328
-
1329
- return match;
1330
- },
1331
- eatContinue: function(match, stack){
1332
- if (this.ast) { //#ifdef FULL_AST
1333
- stack.push(stack = []);
1334
- stack.desc = 'statement';
1335
- stack.sub = 'continue';
1336
- stack.nextBlack = match.tokposb;
1337
-
1338
- match.restricted = true;
1339
- } //#endif
1340
- // (no-line-break identifier)
1341
- // ;
1342
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack); // may not have line terminator...
1343
- if (!match.newline && match.value != ';' && match.name != 12/*EOF*/ && match.value != '}') {
1344
- if (this.ast) { //#ifdef FULL_AST
1345
- match.isLabel = true;
1346
- match.isLabelTarget = true;
1347
-
1348
- var continueArg = match; // remember to see if this continue parsed a label
1349
- } //#endif
1350
- // may only parse exactly an identifier at this point
1351
- match = this.eatExpressions(false, match, stack, true, false, true); // first true=onlyOne, second: continue/break arg
1352
- if (this.ast) { //#ifdef FULL_AST
1353
- stack.hasLabel = continueArg != match;
1354
- } //#endif
1355
- if (match.value != ';' && !match.newline && match.name != 12/*eof*/ && match.value != '}') match = this.failsafe('BreakOrContinueArgMustBeJustIdentifier', match);
1356
- }
1357
- match = this.eatSemiColon(match, stack);
1358
-
1359
- return match;
1360
- },
1361
- eatBreak: function(match, stack){
1362
- if (this.ast) { //#ifdef FULL_AST
1363
- var parentstack = stack
1364
- stack = [];
1365
- stack.desc = 'statement';
1366
- stack.sub = 'break';
1367
- stack.nextBlack = match.tokposb;
1368
-
1369
- parentstack.push(stack);
1370
-
1371
- match.restricted = true;
1372
- } //#endif
1373
- // (no-line-break identifier)
1374
- // ;
1375
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack); // may not have line terminator...
1376
- if (!match.newline && match.value != ';' && match.name != 12/*EOF*/ && match.value != '}') {
1377
- if (this.ast) { //#ifdef FULL_AST
1378
- match.isLabel = true;
1379
- match.isLabelTarget = true;
1380
- var breakArg = match; // remember to see if this break parsed a label
1381
- } //#endif
1382
- // may only parse exactly an identifier at this point
1383
- match = this.eatExpressions(false, match, stack, true, false, true); // first true=onlyOne, second: continue/break arg
1384
- if (this.ast) { //#ifdef FULL_AST
1385
- stack.hasLabel = breakArg != match;
1386
- } //#endif
1387
-
1388
- if (match.value != ';' && !match.newline && match.name != 12/*eof*/ && match.value != '}') match = this.failsafe('BreakOrContinueArgMustBeJustIdentifier', match);
1389
- }
1390
- match = this.eatSemiColon(match, stack);
1391
-
1392
- return match;
1393
- },
1394
- eatReturn: function(match, stack){
1395
- if (this.ast) { //#ifdef FULL_AST
1396
- stack.push(stack = []);
1397
- stack.desc = 'statement';
1398
- stack.sub = 'return';
1399
- stack.nextBlack = match.tokposb;
1400
- stack.returnFor = this.scope.scopeFor;
1401
-
1402
- match.restricted = true;
1403
- } //#endif
1404
- // (no-line-break expression)
1405
- // ;
1406
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack); // may not have line terminator...
1407
- if (!match.newline && match.value != ';' && match.name != 12/*EOF*/ && match.value != '}') {
1408
- match = this.eatExpressions(false, match, stack);
1409
- }
1410
- match = this.eatSemiColon(match, stack);
1411
-
1412
- return match;
1413
- },
1414
- eatThrow: function(match, stack){
1415
- if (this.ast) { //#ifdef FULL_AST
1416
- stack.push(stack = []);
1417
- stack.desc = 'statement';
1418
- stack.sub = 'throw';
1419
- stack.nextBlack = match.tokposb;
1420
-
1421
- match.restricted = true;
1422
- } //#endif
1423
- // (no-line-break expression)
1424
- // ;
1425
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack); // may not have line terminator...
1426
- if (match.newline) match = this.failsafe('ThrowCannotHaveReturn', match);
1427
- if (match.value == ';') match = this.failsafe('ThrowMustHaveArgument', match);
1428
- match = this.eatExpressions(false, match, stack);
1429
- match = this.eatSemiColon(match, stack);
1430
-
1431
- return match;
1432
- },
1433
- eatSwitch: function(match, stack){
1434
- if (this.ast) { //#ifdef FULL_AST
1435
- stack.push(stack = []);
1436
- stack.desc = 'statement';
1437
- stack.sub = 'switch';
1438
- stack.nextBlack = match.tokposb;
1439
-
1440
- this.statementLabels.push(''); // add "empty"
1441
- } //#endif
1442
- // meh.
1443
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1444
- if (match.value != '(') match = this.failsafe('ExpectedStatementHeaderOpen', match);
1445
- if (this.ast) { //#ifdef FULL_AST
1446
- var lhp = match;
1447
- match.statementHeaderStart = true;
1448
- } //#endif
1449
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1450
- if (!(/*is left hand side start?*/ match.name <= 6 || this.regexLhsStart.test(match.value))) {
1451
- this.failignore('StatementHeaderIsNotOptional', match, stack);
1452
- }
1453
- match = this.eatExpressions(false, match, stack);
1454
- if (match.value != ')') match = this.failsafe('ExpectedStatementHeaderClose', match);
1455
- if (this.ast) { //#ifdef FULL_AST
1456
- match.twin = lhp;
1457
- match.statementHeaderStop = true;
1458
- lhp.twin = match;
1459
-
1460
- if (stack[stack.length-1].desc == 'expressions') {
1461
- // create ref to this expression group to the opening bracket
1462
- lhp.expressionArg = stack[stack.length-1];
1463
- }
1464
- } //#endif
1465
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1466
- if (match.value != '{') match = this.failsafe('SwitchBodyStartsWithCurly', match);
1467
-
1468
- if (this.ast) { //#ifdef FULL_AST
1469
- var lhc = match;
1470
- } //#endif
1471
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1472
-
1473
- // you may parse a default case, and only once per switch. but you may do so anywhere.
1474
- var parsedAnything = false;
1475
-
1476
- while (match.value == 'case' || (!stack.parsedSwitchDefault && match.value == 'default')) {
1477
- parsedAnything = true;
1478
- if (match.value == 'default') stack.parsedSwitchDefault = true;
1479
-
1480
- match = this.eatSwitchClause(match, stack);
1481
- }
1482
-
1483
- // if you didnt parse anything but not encountering a closing curly now, you might be thinking that switches may start with silly stuff
1484
- if (!parsedAnything && match.value != '}') {
1485
- match = this.failsafe('SwitchBodyMustStartWithClause', match);
1486
- }
1487
-
1488
- if (stack.parsedSwitchDefault && match.value == 'default') {
1489
- this.failignore('SwitchCannotHaveDoubleDefault', match, stack);
1490
- }
1491
-
1492
- if (match.value != '}' && match.name != 14/*error*/) match = this.failsafe('SwitchBodyEndsWithCurly', match);
1493
-
1494
- if (this.ast) { //#ifdef FULL_AST
1495
- match.twin = lhc;
1496
- lhc.twin = match;
1497
- } //#endif
1498
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1499
-
1500
- return match;
1501
- },
1502
- eatSwitchClause: function(match, stack){
1503
- match = this.eatSwitchHeader(match, stack);
1504
- match = this.eatSwitchBody(match, stack);
1505
-
1506
- return match;
1507
- },
1508
- eatSwitchHeader: function(match, stack){
1509
- if (this.ast) { //#ifdef FULL_AST
1510
- // collect whitespace...
1511
- var switchHeaderStack = stack
1512
- stack.push(stack = []);
1513
- stack.desc = 'switch clause header';
1514
- stack.nextBlack = match.tokposb;
1515
- } //#endif
1516
-
1517
- if (match.value == 'case') {
1518
- match = this.eatSwitchCaseHead(match, stack);
1519
- } else { // default
1520
- if (this.ast) { //#ifdef FULL_AST
1521
- switchHeaderStack.hasDefaultClause = true;
1522
- } //#endif
1523
- match = this.eatSwitchDefaultHead(match, stack);
1524
- }
1525
-
1526
- if (this.ast) { //#ifdef FULL_AST
1527
- // just to group whitespace (makes certain navigation easier..)
1528
- stack.push(stack = []);
1529
- stack.desc = 'colon';
1530
- stack.nextBlack = match.tokposb;
1531
- } //#endif
1532
-
1533
- if (match.value != ':') {
1534
- match = this.failsafe('SwitchClausesEndWithColon', match);
1535
- }
1536
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1537
-
1538
- return match;
1539
- },
1540
- eatSwitchBody: function(match, stack){
1541
- if (this.ast) { //#ifdef FULL_AST
1542
- stack.push(stack = []);
1543
- stack.desc = 'switch clause body';
1544
- stack.nextBlack = match.tokposb;
1545
- } //#endif
1546
-
1547
- // parse body of case or default, just so long case and default keywords are not seen and end of switch is not reached
1548
- // (clause bodies may be empty, for instance to fall through)
1549
- var lastMatch = null;
1550
- while (match.value != 'default' && match.value != 'case' && match.value != '}' && match.name != 14/*error*/ && match.name != 12/*eof*/ && lastMatch != match) {
1551
- lastMatch = match; // prevents endless loops on error ;)
1552
- match = this.eatStatement(true, match, stack);
1553
- }
1554
- if (lastMatch == match) this.failsafe('UnexpectedInputSwitch', match);
1555
-
1556
- return match;
1557
- },
1558
- eatSwitchCaseHead: function(match, stack){
1559
- if (this.ast) { //#ifdef FULL_AST
1560
- stack.sub = 'case';
1561
- var caseHeadStack = stack;
1562
-
1563
- stack.push(stack = []);
1564
- stack.desc = 'case';
1565
- stack.nextBlack = match.tokposb;
1566
-
1567
- match.isCase = true;
1568
- } //#endif
1569
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1570
-
1571
- if (match.value == ':') {
1572
- this.failignore('CaseMissingExpression', match, stack);
1573
- } else {
1574
- if (this.ast) { //#ifdef FULL_AST
1575
- caseHeadStack.push(stack = []);
1576
- stack.desc = 'case arg';
1577
- stack.nextBlack = match.tokposb;
1578
- } //#endif
1579
- match = this.eatExpressions(false, match, stack);
1580
- }
1581
-
1582
- return match;
1583
- },
1584
- eatSwitchDefaultHead: function(match, stack){
1585
- if (this.ast) { //#ifdef FULL_AST
1586
- stack.sub = 'default';
1587
-
1588
- stack.push(stack = []);
1589
- stack.desc = 'case';
1590
- stack.nextBlack = match.tokposb;
1591
-
1592
- match.isDefault = true;
1593
- } //#endif
1594
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1595
-
1596
- return match;
1597
- },
1598
- eatTryCatchFinally: function(match, stack){
1599
- if (this.ast) { //#ifdef FULL_AST
1600
- stack.push(stack = []);
1601
- stack.desc = 'statement';
1602
- stack.sub = 'try';
1603
- stack.nextBlack = match.tokposb;
1604
- } //#endif
1605
-
1606
- match = this.eatTry(match, stack);
1607
-
1608
- if (match.value == 'catch') {
1609
- if (this.ast) { //#ifdef FULL_AST
1610
- stack.hasCatch = true;
1611
- } //#endif
1612
- match = this.eatCatch(match, stack);
1613
- }
1614
- if (match.value == 'finally') {
1615
- if (this.ast) { //#ifdef FULL_AST
1616
- stack.hasFinally = true;
1617
- } //#endif
1618
- match = this.eatFinally(match, stack);
1619
- }
1620
-
1621
- // at least a catch or finally block must follow. may be both.
1622
- if (!stack.tryHasCatchOrFinally) {
1623
- this.failignore('TryMustHaveCatchOrFinally', match, stack);
1624
- }
1625
-
1626
- return match;
1627
- },
1628
- eatTry: function(match, stack){
1629
- // block
1630
- // (catch ( identifier ) block )
1631
- // (finally block)
1632
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1633
- if (match.value != '{') match = this.failsafe('MissingTryBlockCurlyOpen', match);
1634
-
1635
- if (this.ast) { //#ifdef FULL_AST
1636
- stack.push(stack = []);
1637
- stack.desc = 'statement';
1638
- stack.sub = 'tryblock';
1639
- stack.nextBlack = match.tokposb;
1640
- var lhc = match;
1641
- } //#endif
1642
-
1643
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1644
- if (match.value != '}') match = this.eatStatements(match, stack);
1645
- if (match.value != '}') match = this.failsafe('MissingTryBlockCurlyClose', match);
1646
-
1647
- if (this.ast) { //#ifdef FULL_AST
1648
- match.twin = lhc;
1649
- lhc.twin = match;
1650
- } //#endif
1651
-
1652
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1653
-
1654
- return match;
1655
- },
1656
- eatCatch: function(match, stack){
1657
- stack.tryHasCatchOrFinally = true;
1658
- if (this.ast) { //#ifdef FULL_AST
1659
- stack.push(stack = []);
1660
- stack.desc = 'statement';
1661
- stack.sub = 'catch';
1662
- stack.nextBlack = match.tokposb;
1663
-
1664
- // the catch block has a header which can contain at most one parameter
1665
- // this parameter is bound to a local stack. formally, if that parameter
1666
- // shadows another variable, changes made to the variable inside the catch
1667
- // should not be reflected by the variable being shadowed. however, this
1668
- // is not very safe to rely on so there ought to be a warning. note that
1669
- // only this parameter gets bound to this inner scope, other parameters.
1670
-
1671
- var catchScopeBackup = this.scope;
1672
- match.scope = this.scope = stack.scope = [this.scope];
1673
- this.scope.catchScope = true; // mark this as being a catchScope
1674
-
1675
- // find first function scope or global scope object...
1676
- var nonCatchScope = catchScopeBackup;
1677
- while (nonCatchScope.catchScope) nonCatchScope = nonCatchScope[0];
1678
-
1679
- // get catch id, which is governed by the function/global scope only
1680
- if (!nonCatchScope.catches) nonCatchScope.catches = [];
1681
- match.catchId = nonCatchScope.catches.length;
1682
- nonCatchScope.catches.push(match);
1683
- match.targetScope = nonCatchScope;
1684
- match.catchScope = this.scope;
1685
-
1686
- // ref to back to function that's the cause for this scope
1687
- this.scope.scopeFor = match;
1688
- // catch clauses dont have a special `this` or `arguments`, map them to their parent scope
1689
- if (catchScopeBackup.global) this.scope.push(catchScopeBackup[0]); // global (has no `arguments` but always a `this`)
1690
- else if (catchScopeBackup.catchScope) {
1691
- // tricky. there will at least be a this
1692
- this.scope.push(catchScopeBackup[1]);
1693
- // but there might not be an arguments
1694
- if (catchScopeBackup[2] && catchScopeBackup[2].value == 'arguments') this.scope.push(catchScopeBackup[2]);
1695
- } else this.scope.push(catchScopeBackup[1], catchScopeBackup[2]); // function scope, copy this and arguments
1696
- } //#endif
1697
-
1698
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1699
- if (match.value != '(') match = this.failsafe('CatchHeaderMissingOpen', match);
1700
- if (this.ast) { //#ifdef FULL_AST
1701
- var lhp = match;
1702
- } //#endif
1703
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1704
- if (match.name != 2/*IDENTIFIER*/) match = this.failsafe('MissingCatchParameter', match);
1705
- if (this.hashStartKeyOrReserved[match.value[0]] /*this.regexStartKeyOrReserved.test(match.value[0])*/ && this.regexIsKeywordOrReserved.test(match.value)) {
1706
- this.failignore('CatchParameterNameMayNotBeReserved', match, stack);
1707
- }
1708
-
1709
- if (this.ast) { //#ifdef FULL_AST
1710
- match.meta = 'var name';
1711
- // this is the catch variable. bind it to a scope but keep the scope as
1712
- // it currently is.
1713
- this.scope.push(match);
1714
- match.isCatchVar = true;
1715
- } //#endif
1716
-
1717
- // now the catch body will use the outer scope to bind new variables. the problem is that
1718
- // inner scopes, if any, should have access to the scope variable, so their scope should
1719
- // be linked to the catch scope. this is a problem in the current architecture but the
1720
- // idea is to pass on the catchScope as the scope to the eatStatements call, etc.
1721
-
1722
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1723
- if (match.value != ')') match = this.failsafe('CatchHeaderMissingClose', match);
1724
- if (this.ast) { //#ifdef FULL_AST
1725
- match.twin = lhp;
1726
- lhp.twin = match;
1727
- } //#endif
1728
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1729
- if (match.value != '{') match = this.failsafe('MissingCatchBlockCurlyOpen', match);
1730
- if (this.ast) { //#ifdef FULL_AST
1731
- var lhc = match;
1732
- } //#endif
1733
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1734
-
1735
- // catch body. statements are optional.
1736
- if (match.value != '}') match = this.eatStatements(match, stack);
1737
-
1738
- if (match.value != '}') match = this.failsafe('MissingCatchBlockCurlyClose', match);
1739
- if (this.ast) { //#ifdef FULL_AST
1740
- match.twin = lhc;
1741
- lhc.twin = match;
1742
- } //#endif
1743
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1744
-
1745
- if (this.ast) { //#ifdef FULL_AST
1746
- this.scope = catchScopeBackup;
1747
- } //#endif
1748
-
1749
- return match;
1750
- },
1751
- eatFinally: function(match, stack){
1752
- stack.tryHasCatchOrFinally = true;
1753
- if (this.ast) { //#ifdef FULL_AST
1754
- stack.push(stack = []);
1755
- stack.desc = 'statement';
1756
- stack.sub = 'finally';
1757
- stack.nextBlack = match.tokposb;
1758
- } //#endif
1759
-
1760
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1761
- if (match.value != '{') match = this.failsafe('MissingFinallyBlockCurlyOpen', match);
1762
- if (this.ast) { //#ifdef FULL_AST
1763
- var lhc = match;
1764
- } //#endif
1765
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1766
- if (match.value != '}') match = this.eatStatements(match, stack);
1767
- if (match.value != '}') match = this.failsafe('MissingFinallyBlockCurlyClose', match);
1768
- if (this.ast) { //#ifdef FULL_AST
1769
- match.twin = lhc;
1770
- lhc.twin = match;
1771
- } //#endif
1772
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1773
-
1774
- return match;
1775
- },
1776
- eatDebugger: function(match, stack){
1777
- if (this.ast) { //#ifdef FULL_AST
1778
- stack.push(stack = []);
1779
- stack.desc = 'statement';
1780
- stack.sub = 'debugger';
1781
- stack.nextBlack = match.tokposb;
1782
- } //#endif
1783
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1784
- match = this.eatSemiColon(match, stack);
1785
-
1786
- return match;
1787
- },
1788
- eatWith: function(match, stack){
1789
- if (this.ast) { //#ifdef FULL_AST
1790
- stack.push(stack = []);
1791
- stack.desc = 'statement';
1792
- stack.sub = 'with';
1793
- stack.nextBlack = match.tokposb;
1794
- } //#endif
1795
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1796
- if (match.value != '(') match = this.failsafe('ExpectedStatementHeaderOpen', match);
1797
- if (this.ast) { //#ifdef FULL_AST
1798
- var lhp = match;
1799
- match.statementHeaderStart = true;
1800
- } //#endif
1801
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1802
- if (!(/*is left hand side start?*/ match.name <= 6 || this.regexLhsStart.test(match.value))) match = this.failsafe('StatementHeaderIsNotOptional', match);
1803
- match = this.eatExpressions(false, match, stack);
1804
- if (match.value != ')') match = this.failsafe('ExpectedStatementHeaderClose', match);
1805
- if (this.ast) { //#ifdef FULL_AST
1806
- match.twin = lhp;
1807
- match.statementHeaderStop = true;
1808
- lhp.twin = match;
1809
-
1810
- if (stack[stack.length-1].desc == 'expressions') {
1811
- // create ref to this expression group to the opening bracket
1812
- lhp.expressionArg = stack[stack.length-1];
1813
- }
1814
- } //#endif
1815
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1816
- match = this.eatStatement(false, match, stack);
1817
-
1818
- return match;
1819
- },
1820
- eatFunction: function(match, stack){
1821
- var pe = new ZeParser.Error
1822
- this.errorStack.push(pe);
1823
- // ignore. browsers will accept it anyways
1824
- var error = {start:match.stop,stop:match.stop,name:14/*error*/,error:pe};
1825
- this.specialError(error, match, stack);
1826
- // now try parsing a function declaration...
1827
- match = this.eatFunctionDeclaration(match, stack);
1828
-
1829
- return match;
1830
- },
1831
- eatLabelOrExpression: function(match, stack){
1832
- if (this.ast) { //#ifdef FULL_AST
1833
- var parentstack = stack;
1834
-
1835
- stack = [];
1836
- stack.desc = 'statement';
1837
- stack.sub = 'expression';
1838
- stack.nextBlack = match.tokposb;
1839
- parentstack.push(stack);
1840
- } //#endif
1841
- // must be an expression or a labeled statement.
1842
- // in order to prevent very weird return constructs, we'll first check the first match
1843
- // if that's an identifier, we'll gobble it here and move on to the second.
1844
- // if that's a colon, we'll gobble it as a labeled statement. otherwise, we'll pass on
1845
- // control to eatExpression, with the note that we've already gobbled a
1846
-
1847
- match = this.eatExpressions(true, match, stack);
1848
- // if we parsed a label, the returned match (colon) will have this property
1849
- if (match.wasLabel) {
1850
- if (this.ast) { //#ifdef FULL_AST
1851
- stack.sub = 'labeled';
1852
- } //#endif
1853
- // it will have already eaten another statement for the label
1854
- } else {
1855
- if (this.ast) { //#ifdef FULL_AST
1856
- stack.sub = 'expression';
1857
- } //#endif
1858
- // only parse semi if we didnt parse a label just now...
1859
- match = this.eatSemiColon(match, stack);
1860
- }
1861
-
1862
- return match;
1863
- },
1864
- eatBlock: function(match, stack){
1865
- if (this.ast) { //#ifdef FULL_AST
1866
- stack.sub = 'block';
1867
- var lhc = match;
1868
- } //#endif
1869
-
1870
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1871
-
1872
- if (match.value == '}') {
1873
- if (this.ast) { //#ifdef FULL_AST
1874
- stack.isEmptyBlock = true;
1875
- } //#endif
1876
- } else {
1877
- match = this.eatStatements(match, stack);
1878
- }
1879
- if (match.value != '}') match = this.failsafe('BlockCurlyClose', match);
1880
- if (this.ast) { //#ifdef FULL_AST
1881
- match.twin = lhc;
1882
- lhc.twin = match;
1883
- } //#endif
1884
- match = this.tokenizer.storeCurrentAndFetchNextToken(false, match, stack);
1885
-
1886
- return match;
1887
- },
1888
-
1889
- eatStatements: function(match, stack){
1890
- //this.stats.eatStatements = (+//this.stats.eatStatements||0)+1;
1891
- // detecting the start of a statement "quickly" is virtually impossible.
1892
- // instead we keep eating statements until the match stops changing
1893
- // the first argument indicates that the statement is optional. if that
1894
- // statement was not found, the input match will also be the output.
1895
-
1896
- while (match != (match = this.eatStatement(true, match, stack)));
1897
- return match;
1898
- },
1899
- eatStatement: function(isOptional, match, stack){
1900
- if (!match && isOptional) return match; // eof
1901
-
1902
- if (this.ast) { //#ifdef FULL_AST
1903
- match.statementStart = true;
1904
- var pstack = stack;
1905
- stack = [];
1906
- stack.desc = 'statement-parent';
1907
- stack.nextBlack = match.tokposb;
1908
- pstack.push(stack);
1909
-
1910
- // list of labels, these are bound to statements (and can access any label higher up, but not cross functions)
1911
- var labelBackup = this.statementLabels;
1912
- this.statementLabels = [labelBackup]; // make ref like tree. we need this to catch labels parsed beyond the current position (not yet known to use)
1913
- stack.labels = this.statementLabels;
1914
- } //#endif
1915
-
1916
- if (match.name == 2/*IDENTIFIER*/) {
1917
- // try to determine whether it's a statement
1918
- // (block/empty statements come later, this branch is only for identifiers)
1919
- switch (match.value) {
1920
- case 'var':
1921
- match = this.eatVar(match, stack);
1922
- break;
1923
- case 'if':
1924
- match = this.eatIf(match, stack);
1925
- break;
1926
- case 'do':
1927
- match = this.eatDo(match, stack);
1928
- break;
1929
- case 'while':
1930
- match = this.eatWhile(match, stack);
1931
- break;
1932
- case 'for':
1933
- match = this.eatFor(match, stack);
1934
- break;
1935
- case 'continue':
1936
- match = this.eatContinue(match, stack);
1937
- break;
1938
- case 'break':
1939
- match = this.eatBreak(match, stack);
1940
- break;
1941
- case 'return':
1942
- match = this.eatReturn(match, stack);
1943
- break;
1944
- case 'throw':
1945
- match = this.eatThrow(match, stack);
1946
- break;
1947
- case 'switch':
1948
- match = this.eatSwitch(match, stack);
1949
- break;
1950
- case 'try':
1951
- match = this.eatTryCatchFinally(match, stack);
1952
- break;
1953
- case 'debugger':
1954
- match = this.eatDebugger(match, stack);
1955
- break;
1956
- case 'with':
1957
- match = this.eatWith(match, stack);
1958
- break;
1959
- case 'function':
1960
- // I'm not sure whether this is at all possible.... (but it's bad, either way ;)
1961
- // so add an error token, but parse the function as if it was a declaration.
1962
- this.failignore('StatementMayNotStartWithFunction', match, stack);
1963
-
1964
- // now parse as declaration... (most likely?)
1965
- match = this.eatFunctionDeclaration(match, stack);
1966
-
1967
- break;
1968
- default: // either a label or an expression-statement
1969
- match = this.eatLabelOrExpression(match, stack);
1970
- }
1971
- } else if (match.value == '{') { // Block (make sure you do this before checking for expression...)
1972
- match = this.eatBlock(match, stack);
1973
- } else if (
1974
- // expression statements:
1975
- match.isString ||
1976
- match.isNumber ||
1977
- match.name == 1/*REG_EX*/ ||
1978
- this.regexLhsStart.test(match.value)
1979
- ) {
1980
- match = this.eatExpressions(false, match,stack);
1981
- match = this.eatSemiColon(match, stack);
1982
- } else if (match.value == ';') { // empty statement
1983
- match.emptyStatement = true;
1984
- match = this.eatSemiColon(match, stack);
1985
- } else if (!isOptional) {
1986
- if (this.ast) { //#ifdef FULL_AST
1987
- // unmark token as being start of a statement, since it's obviously not
1988
- match.statementStart = false;
1989
- } //#endif
1990
- match = this.failsafe('UnableToParseStatement', match);
1991
- } else {
1992
- // unmark token as being start of a statement, since it's obviously not
1993
- if (this.ast) match.statementStart = true;
1994
- }
1995
-
1996
- if (this.ast) { //#ifdef FULL_AST
1997
- if (!stack.length) pstack.length = pstack.length-1;
1998
-
1999
- // restore label set
2000
- this.statementLabels = labelBackup;
2001
- } //#endif
2002
-
2003
- return match;
2004
- },
2005
-
2006
- eatSourceElements: function(match, stack){
2007
- //this.stats.eatSourceElements = (+//this.stats.eatSourceElements||0)+1;
2008
- // detecting the start of a statement "quickly" is virtually impossible.
2009
- // instead we keep eating statements until the match stops changing
2010
- // the first argument indicates that the statement is optional. if that
2011
- // statement was not found, the input match will also be the output.
2012
- while (match != oldMatch) { // difficult to determine whether ` && match.name != 12/*EOF*/` is actually speeding things up. it's an extra check vs one less call to eatStatement...
2013
- var oldMatch = match;
2014
- // always try to eat function declaration first. otherwise 'function' at the start might cause eatStatement to throw up
2015
- if (match.value == 'function') match = this.eatFunctionDeclaration(match, stack);
2016
- else match = this.eatStatement(true, match, stack);
2017
- }
2018
- return match;
2019
- },
2020
-
2021
- failsafe: function(name, match, doNotAddMatch){
2022
- var pe = new ZeParser.Error(name, match);
2023
- this.errorStack.push(pe);
2024
-
2025
- if (!doNotAddMatch) {
2026
- // the match was bad, but add it to the ast anyways. in most cases this is the case but in some its not.
2027
- // the tokenizer will pick up on the errorEscape property and add it after the match we passed on.
2028
- if (this.tokenizer.errorEscape) this.stack.push(this.tokenizer.errorEscape);
2029
- this.tokenizer.errorEscape = match;
2030
- }
2031
- var error = {start:match.start,stop:match.start,len:0, name:14/*error*/,error:pe, value:''};
2032
- this.tokenizer.addTokenToStreamBefore(error, match);
2033
- return error;
2034
- },
2035
- failignore: function(name, match, stack){
2036
- var pe = new ZeParser.Error(name, match);
2037
- this.errorStack.push(pe);
2038
- // ignore the error (this will screw up :)
2039
- var error = {start:match.start,stop:match.start,len:0,name:14/*error*/,error:pe, value:''};
2040
- stack.push(error);
2041
- this.tokenizer.addTokenToStreamBefore(error, match);
2042
- },
2043
- failSpecial: function(error, match, stack){
2044
- // we cant really ignore this. eat the token
2045
- stack.push(error);
2046
- this.tokenizer.addTokenToStreamBefore(error, match);
2047
- },
2048
-
2049
- 0:0};
2050
-
2051
- //#ifdef TEST_SUITE
2052
- ZeParser.testSuite = function(tests){
2053
- var ok = 0;
2054
- var fail = 0;
2055
- var start = +new Date;
2056
- for (var i = 0; i < tests.length; ++i) {
2057
- var test = tests[i], input = test[0], outputLen = test[1].length ? test[1][1] : test[1], desc = test[test.length - 1], stack = [];
2058
- try {
2059
- var result = ZeParser.parse(input, true);
2060
- if (result.length == outputLen) {
2061
- ++ok;
2062
- } else {
2063
- ++fail;
2064
- }
2065
- } catch (e) {
2066
- ++fail;
2067
- }
2068
- document.getElementsByTagName('div')[0].innerHTML = ('Ze parser test suite finished ('+(+new Date - start)+' ms). ok:'+ok+', fail:'+fail);
2069
- };
2070
- };
2071
- //#endif
2072
-
2073
- ZeParser.regexLhsStart = /[\+\-\~\!\(\{\[]/;
2074
- /*
2075
- ZeParser.regexStartKeyword = /[bcdefinrstvw]/;
2076
- ZeParser.regexKeyword = /^break$|^catch$|^continue$|^debugger$|^default$|^delete$|^do$|^else$|^finally$|^for$|^function$|^if$|^in$|^instanceof$|^new$|^return$|^switch$|^this$|^throw$|^try$|^typeof$|^var$|^void$|^while$|^with$/;
2077
- ZeParser.regexStartReserved = /[ceis]/;
2078
- ZeParser.regexReserved = /^class$|^const$|^enum$|^export$|^extends$|^import$|^super$/;
2079
- */
2080
- ZeParser.regexStartKeyOrReserved = /[bcdefinrstvw]/;
2081
- ZeParser.hashStartKeyOrReserved = Object.create ? Object.create(null, {b:{value:1},c:{value:1},d:{value:1},e:{value:1},f:{value:1},i:{value:1},n:{value:1},r:{value:1},s:{value:1},t:{value:1},v:{value:1},w:{value:1}}) : {b:1,c:1,d:1,e:1,f:1,i:1,n:1,r:1,s:1,t:1,v:1,w:1};
2082
- ZeParser.regexIsKeywordOrReserved = /^break$|^catch$|^continue$|^debugger$|^default$|^delete$|^do$|^else$|^finally$|^for$|^function$|^if$|^in$|^instanceof$|^new$|^return$|^switch$|^case$|^this$|^true$|^false$|^null$|^throw$|^try$|^typeof$|^var$|^void$|^while$|^with$|^class$|^const$|^enum$|^export$|^extends$|^import$|^super$/;
2083
- ZeParser.regexAssignments = /^[\+\-\*\%\&\|\^\/]?=$|^\<\<\=$|^\>{2,3}\=$/;
2084
- ZeParser.regexNonAssignmentBinaryExpressionOperators = /^[\+\-\*\%\|\^\&\?\/]$|^[\<\>]\=?$|^[\=\!]\=\=?$|^\<\<|\>\>\>?$|^\&\&$|^\|\|$/;
2085
- ZeParser.regexUnaryKeywords = /^delete$|^void$|^typeof$|^new$/;
2086
- ZeParser.hashUnaryKeywordStart = Object.create ? Object.create(null, {d:{value:1},v:{value:1},t:{value:1},n:{value:1}}) : {d:1,v:1,t:1,n:1};
2087
- ZeParser.regexUnaryOperators = /[\+\-\~\!]/;
2088
- ZeParser.regexLiteralKeywords = /^this$|^null$|^true$|^false$/;
2089
-
2090
- ZeParser.Error = function(type, match){
2091
- //if (type == 'BreakOrContinueArgMustBeJustIdentifier') throw here;
2092
- this.msg = ZeParser.Errors[type].msg;
2093
- this.before = ZeParser.Errors[type].before;
2094
- this.match = match;
2095
- };
2096
-
2097
- ZeParser.Errors = {
2098
- NoASI: {msg:'Expected semi-colon, was unable to apply ASI'},
2099
- ExpectedAnotherExpressionComma: {msg:'expecting another (left hand sided) expression after the comma'},
2100
- ExpectedAnotherExpressionRhs: {msg:"expected a rhs expression"},
2101
- UnclosedGroupingOperator: {msg:"Unclosed grouping operator"},
2102
- GroupingShouldStartWithExpression: {msg:'The grouping operator (`(`) should start with a left hand sided expression'},
2103
- ArrayShouldStartWithExpression: {msg:'The array literal (`[`) should start with a left hand sided expression'},
2104
- UnclosedPropertyBracket: {msg:'Property bracket was not closed after expression (expecting `]`)'},
2105
- IllegalPropertyNameToken: {msg:'Object literal property names can only be assigned as strings, numbers or identifiers'},
2106
- IllegalGetterSetterNameToken: {msg:'Name of a getter/setter can only be assigned as strings, numbers or identifiers'},
2107
- GetterSetterNameFollowedByOpenParen: {msg:'The name of the getter/setter should immediately be followed by the opening parenthesis `(`'},
2108
- GetterHasNoArguments: {msg:'The opening parenthesis `(` of the getter should be immediately followed by the closing parenthesis `)`, the getter cannot have an argument'},
2109
- IllegalSetterArgumentNameToken: {msg:'Expecting the name of the argument of a setter, can only be assigned as strings, numbers or identifiers'},
2110
- SettersOnlyGetOneArgument: {msg:'Setters have one and only one argument, missing the closing parenthesis `)`'},
2111
- SetterHeaderShouldHaveClosingParen: {msg:'After the first argument of a setter should come a closing parenthesis `)`'},
2112
- SettersMustHaveArgument: {msg:'Setters must have exactly one argument defined'},
2113
- UnclosedObjectLiteral: {msg:'Expected to find a comma `,` for the next expression or a closing curly brace `}` to end the object literal'},
2114
- FunctionNameMustNotBeReserved: {msg:'Function name may not be a keyword or a reserved word'},
2115
- ExpressionMayNotStartWithKeyword: {msg:'Expressions may not start with keywords or reserved words that are not in this list: [this, null, true, false, void, typeof, delete, new]'},
2116
- LabelsMayOnlyBeIdentifiers: {msg:'Label names may only be defined as an identifier'},
2117
- LabelsMayNotBeReserved: {msg:'Labels may not be a keyword or a reserved word'},
2118
- UnknownToken: {msg:'Unknown token encountered, dont know how to proceed'},
2119
- PropertyNamesMayOnlyBeIdentifiers: {msg:'The tokens of property names accessed through the dot operator may only be identifiers'},
2120
- SquareBracketExpectsExpression: {msg:'The square bracket property access expects an expression'},
2121
- SquareBracketsMayNotBeEmpty: {msg:'Square brackets may never be empty, expecting an expression'},
2122
- UnclosedSquareBrackets: {msg:'Unclosed square bracket encountered, was expecting `]` after the expression'},
2123
- UnclosedCallParens: {msg:'Unclosed call parenthesis, expecting `)` after the optional expression'},
2124
- InvalidCenterTernaryExpression: {msg:'Center expression of ternary operator should be a regular expression (but may not contain the comma operator directly)'},
2125
- UnfinishedTernaryOperator: {msg:'Encountered a ternary operator start (`?`) but did not find the required colon (`:`) after the center expression'},
2126
- TernarySecondExpressionCanNotContainComma: {msg:'The second and third expressions of the ternary operator can/may not "directly" contain a comma operator'},
2127
- InvalidRhsExpression: {msg:'Expected a right hand side expression after the operator (which should also be a valid lhs) but did not find one'},
2128
- FunctionDeclarationsMustHaveName: {msg:'Function declaration must have name'},
2129
- FunctionNameMayNotBeReserved: {msg:'Function name may not be a keyword or reserved word'},
2130
- ExpectingFunctionHeaderStart: {msg:'Expected the opening parenthesis of the function header'},
2131
- FunctionArgumentsCanNotBeReserved: {msg:'Function arguments may not be keywords or reserved words'},
2132
- FunctionParametersMustBeIdentifiers: {msg:'Function arguments must be identifiers'},
2133
- ExpectedFunctionHeaderClose: {msg:'Expected the closing parenthesis `)` of the function header'},
2134
- ExpectedFunctionBodyCurlyOpen: {msg:'Expected the opening curly brace `{` for the function body'},
2135
- ExpectedFunctionBodyCurlyClose: {msg:'Expected the closing curly brace `}` for the function body'},
2136
- VarNamesMayOnlyBeIdentifiers: {msg:'Missing variable name, must be a proper identifier'},
2137
- VarNamesCanNotBeReserved: {msg:'Variable names may not be keywords or reserved words'},
2138
- VarInitialiserExpressionExpected: {msg:'The initialiser of the variable statement should be an expression without comma'},
2139
- ExpectedStatementHeaderOpen: {msg:'Expected opening parenthesis `(` for statement header'},
2140
- StatementHeaderIsNotOptional: {msg:'Statement header must not be empty'},
2141
- ExpectedStatementHeaderClose: {msg:'Expected closing parenthesis `)` for statement header'},
2142
- DoShouldBeFollowedByWhile: {msg:'The do-while statement requires the `while` keyword after the expression'},
2143
- ExpectedSecondSemiOfForHeader: {msg:'Expected the second semi-colon of the for-each header'},
2144
- ForHeaderShouldHaveSemisOrIn: {msg:'The for-header should contain at least the `in` operator or two semi-colons (`;`)'},
2145
- SwitchBodyStartsWithCurly: {msg:'The body of a switch statement starts with a curly brace `{`'},
2146
- SwitchClausesEndWithColon: {msg:'Switch clauses (`case` and `default`) end with a colon (`:`)'},
2147
- SwitchCannotHaveDoubleDefault: {msg:'Switches cannot have more than one `default` clause'},
2148
- SwitchBodyEndsWithCurly: {msg:'The body of a switch statement ends with a curly brace `}`'},
2149
- MissingTryBlockCurlyOpen: {msg:'Missing the opening curly brace (`{`) for the block of the try statement'},
2150
- MissingTryBlockCurlyClose: {msg:'Missing the closing curly brace (`}`) for the block of the try statement'},
2151
- CatchHeaderMissingOpen: {msg:'Missing the opening parenthesis of the catch header'},
2152
- MissingCatchParameter: {msg:'Catch clauses should have exactly one argument which will be bound to the error object being thrown'},
2153
- CatchParameterNameMayNotBeReserved: {msg:'Catch clause parameter may not be a keyword or reserved word'},
2154
- CatchHeaderMissingClose: {msg:'Missing the closing parenthesis of the catch header'},
2155
- MissingCatchBlockCurlyOpen: {msg:'Missing the opening curly brace (`{`) for the block of the catch statement'},
2156
- MissingCatchBlockCurlyClose: {msg:'Missing the closing curly brace (`}`) for the block of the catch statement'},
2157
- MissingFinallyBlockCurlyOpen: {msg:'Missing the opening curly brace (`{`) for the block of the finally statement'},
2158
- MissingFinallyBlockCurlyClose: {msg:'Missing the closing curly brace (`}`) for the block of the finally statement'},
2159
- StatementMayNotStartWithFunction: {msg:'statements may not start with function...', before:true},
2160
- BlockCurlyClose: {msg:'Expected the closing curly (`}`) for a block statement'},
2161
- BlockCurlyOpen: {msg:'Expected the closing curly (`}`) for a block statement'},
2162
- UnableToParseStatement: {msg:'Was unable to find a statement when it was requested'},
2163
- IllegalDoubleCommaInObjectLiteral: {msg:'A double comma in object literals is not allowed'},
2164
- ObjectLiteralExpectsColonAfterName: {msg:'After every property name (identifier, string or number) a colon (`:`) should follow'},
2165
- ThrowMustHaveArgument: {msg:'The expression argument for throw is not optional'},
2166
- ThrowCannotHaveReturn: {msg:'There may not be a return between throw and the start of its expression argument'},
2167
- SwitchBodyMustStartWithClause: {msg:'The body of a switch clause must start with at a case or default clause (but may be empty, which would be silly)'},
2168
- BreakOrContinueArgMustBeJustIdentifier: {msg:'The argument to a break or continue statement must be exactly and only an identifier (an existing label)'},
2169
- AssignmentNotAllowedAfterNonAssignmentInExpression: {msg:'An assignment is not allowed if it is preceeded by a non-expression operator in the same expression-level'},
2170
- IllegalLhsForAssignment: {msg:'Illegal left hand side for assignment (you cannot assign to things like string literals, number literals or function calls}'},
2171
- VarKeywordMissingName: {msg:'Var keyword should be followed by a variable name'},
2172
- IllegalTrailingComma: {msg:'Illegal trailing comma found'},
2173
- ObjectLiteralMissingPropertyValue: {msg:'Missing object literal property value'},
2174
- TokenizerError: {msg:'Tokenizer encountered unexpected input'},
2175
- LabelRequiresStatement: {msg:'Saw a label without the (required) statement following'},
2176
- DidNotExpectElseHere: {msg:'Did not expect an else here. To what if should it belong? Maybe you put a ; after the if-block? (if(x){};else{})'},
2177
- UnexpectedToken: {msg:'Found an unexpected token and have no idea why'},
2178
- InvalidPostfixOperandArray: {msg:'You cannot apply ++ or -- to an array'},
2179
- InvalidPostfixOperandObject: {msg:'You cannot apply ++ or -- to an object'},
2180
- InvalidPostfixOperandFunction: {msg:'You cannot apply ++ or -- to a function'},
2181
- CaseMissingExpression: {msg:'Case expects an expression before the colon'},
2182
- TryMustHaveCatchOrFinally: {msg:'The try statement must have a catch or finally block'},
2183
- UnexpectedInputSwitch: {msg:'Unexpected input while parsing a switch clause...'},
2184
- ForInCanOnlyDeclareOnVar: {msg:'For-in header can only introduce one new variable'}
2185
- };