ruby-wisp-source 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1684) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +28 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE +22 -0
  5. data/README.md +12 -0
  6. data/Rakefile +39 -0
  7. data/VERSION +1 -0
  8. data/lib/wisp/source.rb +7 -0
  9. data/ruby-wisp-source.gemspec +13 -0
  10. data/vendor/History.md +159 -0
  11. data/vendor/LICENSE +24 -0
  12. data/vendor/Makefile +64 -0
  13. data/vendor/Readme.md +615 -0
  14. data/vendor/analyzer.js +385 -0
  15. data/vendor/ast.js +214 -0
  16. data/vendor/backend/javascript/writer.js +212 -0
  17. data/vendor/bin/wisp.js +2 -0
  18. data/vendor/compiler.js +1026 -0
  19. data/vendor/design.md +114 -0
  20. data/vendor/embed.js +2 -0
  21. data/vendor/engine/browser.js +59 -0
  22. data/vendor/engine/node.js +13 -0
  23. data/vendor/interactivate/Makefile +38 -0
  24. data/vendor/interactivate/Readme.md +28 -0
  25. data/vendor/interactivate/build/cache.manifest +12 -0
  26. data/vendor/interactivate/build/codemirror-compressed.js +4 -0
  27. data/vendor/interactivate/build/codemirror.css +248 -0
  28. data/vendor/interactivate/build/main.js +5401 -0
  29. data/vendor/interactivate/build/solarized.css +203 -0
  30. data/vendor/interactivate/index.html +429 -0
  31. data/vendor/interactivate/node_modules/codemirror-activine/License.md +18 -0
  32. data/vendor/interactivate/node_modules/codemirror-activine/Readme.md +22 -0
  33. data/vendor/interactivate/node_modules/codemirror-activine/core.js +33 -0
  34. data/vendor/interactivate/node_modules/codemirror-activine/package.json +36 -0
  35. data/vendor/interactivate/node_modules/codemirror-hashare/License.md +18 -0
  36. data/vendor/interactivate/node_modules/codemirror-hashare/Readme.md +23 -0
  37. data/vendor/interactivate/node_modules/codemirror-hashare/core.js +31 -0
  38. data/vendor/interactivate/node_modules/codemirror-hashare/package.json +37 -0
  39. data/vendor/interactivate/node_modules/codemirror-persist/License.md +18 -0
  40. data/vendor/interactivate/node_modules/codemirror-persist/Readme.md +22 -0
  41. data/vendor/interactivate/node_modules/codemirror-persist/core.js +25 -0
  42. data/vendor/interactivate/node_modules/codemirror-persist/package.json +34 -0
  43. data/vendor/interactivate/node_modules/interactivate/History.md +47 -0
  44. data/vendor/interactivate/node_modules/interactivate/License.md +18 -0
  45. data/vendor/interactivate/node_modules/interactivate/Readme.md +11 -0
  46. data/vendor/interactivate/node_modules/interactivate/demo/Readme.md +24 -0
  47. data/vendor/interactivate/node_modules/interactivate/demo/build/cache.manifest +12 -0
  48. data/vendor/interactivate/node_modules/interactivate/demo/build/codemirror-compressed.js +4 -0
  49. data/vendor/interactivate/node_modules/interactivate/demo/build/codemirror.css +248 -0
  50. data/vendor/interactivate/node_modules/interactivate/demo/build/main.js +267 -0
  51. data/vendor/interactivate/node_modules/interactivate/demo/build/solarized.css +207 -0
  52. data/vendor/interactivate/node_modules/interactivate/demo/index.html +115 -0
  53. data/vendor/interactivate/node_modules/interactivate/demo/main.js +39 -0
  54. data/vendor/interactivate/node_modules/interactivate/demo/node_modules/codemirror-activine/License.md +18 -0
  55. data/vendor/interactivate/node_modules/interactivate/demo/node_modules/codemirror-activine/Readme.md +22 -0
  56. data/vendor/interactivate/node_modules/interactivate/demo/node_modules/codemirror-activine/core.js +33 -0
  57. data/vendor/interactivate/node_modules/interactivate/demo/node_modules/codemirror-activine/package.json +36 -0
  58. data/vendor/interactivate/node_modules/interactivate/demo/node_modules/codemirror-hashare/License.md +18 -0
  59. data/vendor/interactivate/node_modules/interactivate/demo/node_modules/codemirror-hashare/Readme.md +23 -0
  60. data/vendor/interactivate/node_modules/interactivate/demo/node_modules/codemirror-hashare/core.js +31 -0
  61. data/vendor/interactivate/node_modules/interactivate/demo/node_modules/codemirror-hashare/package.json +37 -0
  62. data/vendor/interactivate/node_modules/interactivate/demo/node_modules/codemirror-persist/License.md +18 -0
  63. data/vendor/interactivate/node_modules/interactivate/demo/node_modules/codemirror-persist/Readme.md +22 -0
  64. data/vendor/interactivate/node_modules/interactivate/demo/node_modules/codemirror-persist/core.js +25 -0
  65. data/vendor/interactivate/node_modules/interactivate/demo/node_modules/codemirror-persist/package.json +34 -0
  66. data/vendor/interactivate/node_modules/interactivate/demo/package.json +21 -0
  67. data/vendor/interactivate/node_modules/interactivate/host/window.js +19 -0
  68. data/vendor/interactivate/node_modules/interactivate/interactivate.js +187 -0
  69. data/vendor/interactivate/node_modules/interactivate/node_modules/diffpatcher/History.md +10 -0
  70. data/vendor/interactivate/node_modules/interactivate/node_modules/diffpatcher/License.md +18 -0
  71. data/vendor/interactivate/node_modules/interactivate/node_modules/diffpatcher/Readme.md +68 -0
  72. data/vendor/interactivate/node_modules/interactivate/node_modules/diffpatcher/diff.js +45 -0
  73. data/vendor/interactivate/node_modules/interactivate/node_modules/diffpatcher/index.js +5 -0
  74. data/vendor/interactivate/node_modules/interactivate/node_modules/diffpatcher/package.json +53 -0
  75. data/vendor/interactivate/node_modules/interactivate/node_modules/diffpatcher/patch.js +21 -0
  76. data/vendor/interactivate/node_modules/interactivate/node_modules/diffpatcher/rebase.js +33 -0
  77. data/vendor/interactivate/node_modules/interactivate/node_modules/diffpatcher/test/diff.js +62 -0
  78. data/vendor/interactivate/node_modules/interactivate/node_modules/diffpatcher/test/index.js +16 -0
  79. data/vendor/interactivate/node_modules/interactivate/node_modules/diffpatcher/test/patch.js +54 -0
  80. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/History.md +15 -0
  81. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/License.md +18 -0
  82. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/Readme.md +54 -0
  83. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/event.js +39 -0
  84. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/index.js +3 -0
  85. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/History.md +20 -0
  86. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/License.md +18 -0
  87. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/Readme.md +45 -0
  88. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/end.js +3 -0
  89. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/index.js +8 -0
  90. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/is-error.js +9 -0
  91. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/is-reduced.js +9 -0
  92. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/package.json +57 -0
  93. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/reduce.js +59 -0
  94. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/reduced.js +15 -0
  95. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/reducible.js +87 -0
  96. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/test/index.js +6 -0
  97. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/test/reduce.js +116 -0
  98. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/test/reducible.js +106 -0
  99. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/package.json +56 -0
  100. data/vendor/interactivate/node_modules/interactivate/node_modules/dom-reduce/test/index.js +91 -0
  101. data/vendor/interactivate/node_modules/interactivate/node_modules/method/History.md +60 -0
  102. data/vendor/interactivate/node_modules/interactivate/node_modules/method/License.md +18 -0
  103. data/vendor/interactivate/node_modules/interactivate/node_modules/method/Readme.md +125 -0
  104. data/vendor/interactivate/node_modules/interactivate/node_modules/method/core.js +227 -0
  105. data/vendor/interactivate/node_modules/interactivate/node_modules/method/package.json +93 -0
  106. data/vendor/interactivate/node_modules/interactivate/node_modules/method/test/browser.js +18 -0
  107. data/vendor/interactivate/node_modules/interactivate/node_modules/method/test/common-index.js +3 -0
  108. data/vendor/interactivate/node_modules/interactivate/node_modules/method/test/common.js +270 -0
  109. data/vendor/interactivate/node_modules/interactivate/node_modules/method/test/index.js +3 -0
  110. data/vendor/interactivate/node_modules/interactivate/node_modules/method/test/phantom-index.js +3 -0
  111. data/vendor/interactivate/node_modules/interactivate/node_modules/method/test/tap-index.js +3 -0
  112. data/vendor/interactivate/node_modules/interactivate/node_modules/method/test/testling-index.js +3 -0
  113. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/History.md +139 -0
  114. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/License.md +19 -0
  115. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/Readme.md +253 -0
  116. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/capture.js +34 -0
  117. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/concat.js +37 -0
  118. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/debug/print.js +45 -0
  119. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/delay.js +29 -0
  120. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/drop-while.js +39 -0
  121. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/drop.js +40 -0
  122. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/expand.js +25 -0
  123. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/filter.js +21 -0
  124. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/fold.js +55 -0
  125. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/hub.js +102 -0
  126. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/index.js +33 -0
  127. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/into.js +16 -0
  128. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/map.js +19 -0
  129. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/merge.js +50 -0
  130. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/History.md +20 -0
  131. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/License.md +18 -0
  132. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/Readme.md +45 -0
  133. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/end.js +3 -0
  134. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/index.js +8 -0
  135. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/is-error.js +9 -0
  136. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/is-reduced.js +9 -0
  137. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/package.json +57 -0
  138. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/reduce.js +59 -0
  139. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/reduced.js +15 -0
  140. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/reducible.js +87 -0
  141. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/test/index.js +6 -0
  142. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/test/reduce.js +116 -0
  143. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/test/reducible.js +106 -0
  144. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/package.json +60 -0
  145. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/reducer.js +51 -0
  146. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/reductions.js +31 -0
  147. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/take-while.js +23 -0
  148. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/take.js +40 -0
  149. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/benchmark.js +32 -0
  150. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/capture.js +108 -0
  151. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/concat.js +104 -0
  152. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/delay.js +29 -0
  153. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/drop-while.js +118 -0
  154. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/drop.js +89 -0
  155. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/errors.js +222 -0
  156. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/filter.js +72 -0
  157. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/fold.js +111 -0
  158. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/hub.js +222 -0
  159. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/index.js +23 -0
  160. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/into.js +22 -0
  161. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/map.js +67 -0
  162. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/merge.js +75 -0
  163. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/reductions.js +105 -0
  164. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/take-while.js +134 -0
  165. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/take.js +82 -0
  166. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/util/event.js +25 -0
  167. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/util/lazy.js +9 -0
  168. data/vendor/interactivate/node_modules/interactivate/node_modules/reducers/test/util/test.js +34 -0
  169. data/vendor/interactivate/node_modules/interactivate/output.js +60 -0
  170. data/vendor/interactivate/node_modules/interactivate/package.json +30 -0
  171. data/vendor/interactivate/node_modules/interactivate/render.js +23 -0
  172. data/vendor/interactivate/node_modules/interactivate/view.js +79 -0
  173. data/vendor/interactivate/package.json +22 -0
  174. data/vendor/interactivate/src/host.wisp +84 -0
  175. data/vendor/interactivate/src/main.wisp +38 -0
  176. data/vendor/node_modules/browserify/LICENSE +63 -0
  177. data/vendor/node_modules/browserify/_empty.js +0 -0
  178. data/vendor/node_modules/browserify/bin/advanced.txt +36 -0
  179. data/vendor/node_modules/browserify/bin/cmd.js +150 -0
  180. data/vendor/node_modules/browserify/bin/usage.txt +32 -0
  181. data/vendor/node_modules/browserify/example/api/browser/bar.js +1 -0
  182. data/vendor/node_modules/browserify/example/api/browser/foo.js +5 -0
  183. data/vendor/node_modules/browserify/example/api/browser/main.js +2 -0
  184. data/vendor/node_modules/browserify/example/api/build.js +4 -0
  185. data/vendor/node_modules/browserify/example/multiple_bundles/beep.js +2 -0
  186. data/vendor/node_modules/browserify/example/multiple_bundles/boop.js +2 -0
  187. data/vendor/node_modules/browserify/example/multiple_bundles/build.sh +4 -0
  188. data/vendor/node_modules/browserify/example/multiple_bundles/robot.js +1 -0
  189. data/vendor/node_modules/browserify/example/multiple_bundles/static/beep.html +2 -0
  190. data/vendor/node_modules/browserify/example/multiple_bundles/static/beep.js +6 -0
  191. data/vendor/node_modules/browserify/example/multiple_bundles/static/boop.html +2 -0
  192. data/vendor/node_modules/browserify/example/multiple_bundles/static/boop.js +6 -0
  193. data/vendor/node_modules/browserify/example/multiple_bundles/static/common.js +3 -0
  194. data/vendor/node_modules/browserify/example/source_maps/build.js +10 -0
  195. data/vendor/node_modules/browserify/example/source_maps/build.sh +4 -0
  196. data/vendor/node_modules/browserify/example/source_maps/index.html +11 -0
  197. data/vendor/node_modules/browserify/example/source_maps/js/foo.js +7 -0
  198. data/vendor/node_modules/browserify/example/source_maps/js/main.js +4 -0
  199. data/vendor/node_modules/browserify/example/source_maps/js/wunder/bar.js +8 -0
  200. data/vendor/node_modules/browserify/index.js +352 -0
  201. data/vendor/node_modules/browserify/node_modules/JSONStream/LICENSE.APACHE2 +15 -0
  202. data/vendor/node_modules/browserify/node_modules/JSONStream/LICENSE.MIT +24 -0
  203. data/vendor/node_modules/browserify/node_modules/JSONStream/examples/all_docs.js +13 -0
  204. data/vendor/node_modules/browserify/node_modules/JSONStream/index.js +191 -0
  205. data/vendor/node_modules/browserify/node_modules/JSONStream/node_modules/jsonparse/LICENSE +24 -0
  206. data/vendor/node_modules/browserify/node_modules/JSONStream/node_modules/jsonparse/README.markdown +11 -0
  207. data/vendor/node_modules/browserify/node_modules/JSONStream/node_modules/jsonparse/bench.js +26 -0
  208. data/vendor/node_modules/browserify/node_modules/JSONStream/node_modules/jsonparse/examples/twitterfeed.js +30 -0
  209. data/vendor/node_modules/browserify/node_modules/JSONStream/node_modules/jsonparse/jsonparse.js +401 -0
  210. data/vendor/node_modules/browserify/node_modules/JSONStream/node_modules/jsonparse/package.json +40 -0
  211. data/vendor/node_modules/browserify/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic.json +167 -0
  212. data/vendor/node_modules/browserify/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic2.json +180 -0
  213. data/vendor/node_modules/browserify/node_modules/JSONStream/node_modules/jsonparse/test/boundary.js +110 -0
  214. data/vendor/node_modules/browserify/node_modules/JSONStream/node_modules/jsonparse/test/primitives.js +54 -0
  215. data/vendor/node_modules/browserify/node_modules/JSONStream/node_modules/jsonparse/test/utf8.js +38 -0
  216. data/vendor/node_modules/browserify/node_modules/JSONStream/package.json +43 -0
  217. data/vendor/node_modules/browserify/node_modules/JSONStream/readme.markdown +145 -0
  218. data/vendor/node_modules/browserify/node_modules/JSONStream/test/bool.js +41 -0
  219. data/vendor/node_modules/browserify/node_modules/JSONStream/test/destroy_missing.js +22 -0
  220. data/vendor/node_modules/browserify/node_modules/JSONStream/test/empty.js +44 -0
  221. data/vendor/node_modules/browserify/node_modules/JSONStream/test/fixtures/all_npm.json +4030 -0
  222. data/vendor/node_modules/browserify/node_modules/JSONStream/test/fn.js +39 -0
  223. data/vendor/node_modules/browserify/node_modules/JSONStream/test/multiple_objects.js +42 -0
  224. data/vendor/node_modules/browserify/node_modules/JSONStream/test/multiple_objects_error.js +35 -0
  225. data/vendor/node_modules/browserify/node_modules/JSONStream/test/parsejson.js +28 -0
  226. data/vendor/node_modules/browserify/node_modules/JSONStream/test/stringify.js +41 -0
  227. data/vendor/node_modules/browserify/node_modules/JSONStream/test/stringify_object.js +47 -0
  228. data/vendor/node_modules/browserify/node_modules/JSONStream/test/test.js +35 -0
  229. data/vendor/node_modules/browserify/node_modules/JSONStream/test/test2.js +29 -0
  230. data/vendor/node_modules/browserify/node_modules/JSONStream/test/two-ways.js +41 -0
  231. data/vendor/node_modules/browserify/node_modules/browser-pack/LICENSE +18 -0
  232. data/vendor/node_modules/browserify/node_modules/browser-pack/cmd.js +4 -0
  233. data/vendor/node_modules/browserify/node_modules/browser-pack/example/input.json +13 -0
  234. data/vendor/node_modules/browserify/node_modules/browser-pack/example/output.js +1 -0
  235. data/vendor/node_modules/browserify/node_modules/browser-pack/example/sourcemap/input.json +15 -0
  236. data/vendor/node_modules/browserify/node_modules/browser-pack/example/sourcemap/output.js +6 -0
  237. data/vendor/node_modules/browserify/node_modules/browser-pack/index.js +79 -0
  238. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/LICENSE +23 -0
  239. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/README.md +111 -0
  240. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/example/two-files-short.js +26 -0
  241. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/example/two-files.js +47 -0
  242. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/index.js +97 -0
  243. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/LICENSE +23 -0
  244. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/README.md +85 -0
  245. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/example/comment-to-json.js +15 -0
  246. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/index.js +89 -0
  247. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/package.json +40 -0
  248. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/test/comment-regex.js +25 -0
  249. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/convert-source-map/test/convert-source-map.js +129 -0
  250. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/LICENSE +23 -0
  251. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/README.md +88 -0
  252. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/example/foo-bar.js +8 -0
  253. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/index.js +127 -0
  254. data/vendor/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
  255. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/LICENSE +28 -0
  256. data/vendor/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
  257. data/vendor/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
  258. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/build/assert-shim.js +56 -0
  259. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/build/mini-require.js +152 -0
  260. data/vendor/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
  261. data/vendor/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
  262. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/build/suffix-browser.js +8 -0
  263. data/vendor/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
  264. data/vendor/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
  265. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/build/test-prefix.js +8 -0
  266. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/build/test-suffix.js +3 -0
  267. data/vendor/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
  268. data/vendor/node_modules/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 +144 -0
  269. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/lib/source-map/base64.js +42 -0
  270. data/vendor/node_modules/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 +81 -0
  271. data/vendor/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
  272. data/vendor/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
  273. data/vendor/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
  274. data/vendor/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
  275. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/lib/source-map.js +8 -0
  276. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  277. data/vendor/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
  278. data/vendor/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
  279. data/vendor/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 +40 -0
  280. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/node_modules/source-map/package.json +81 -0
  281. data/vendor/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
  282. data/vendor/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-api.js +26 -0
  283. data/vendor/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-array-set.js +71 -0
  284. data/vendor/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-base64-vlq.js +24 -0
  285. data/vendor/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-base64.js +35 -0
  286. data/vendor/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-binary-search.js +54 -0
  287. data/vendor/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-dog-fooding.js +72 -0
  288. data/vendor/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
  289. data/vendor/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
  290. data/vendor/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
  291. data/vendor/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
  292. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/package.json +49 -0
  293. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/test/inline-source-map.js +247 -0
  294. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/inline-source-map/test/source-content.js +129 -0
  295. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/LICENSE +23 -0
  296. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/MOZILLA_LICENSE +28 -0
  297. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/README.md +35 -0
  298. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/base64-vlq.js +108 -0
  299. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/base64.js +35 -0
  300. data/vendor/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
  301. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/index.js +82 -0
  302. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/package.json +46 -0
  303. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/node_modules/parse-base64vlq-mappings/test/parse-base64vlq-mappings.js +72 -0
  304. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/package.json +52 -0
  305. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/combine-source-map/test/combine-source-map.js +143 -0
  306. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/README.html +1012 -0
  307. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/README.org +593 -0
  308. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/bin/uglifyjs +334 -0
  309. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/docstyle.css +75 -0
  310. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/lib/consolidator.js +1220 -0
  311. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/lib/parse-js.js +1369 -0
  312. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/lib/process.js +2117 -0
  313. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/lib/squeeze-more.js +78 -0
  314. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/package.json +35 -0
  315. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/beautify.js +28 -0
  316. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/testconsolidator.js +1391 -0
  317. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/testparser.js +409 -0
  318. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/1e21.js +1 -0
  319. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/array1.js +1 -0
  320. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/array2.js +1 -0
  321. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/array3.js +1 -0
  322. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/array4.js +1 -0
  323. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/assignment.js +1 -0
  324. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/concatstring.js +1 -0
  325. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/const.js +1 -0
  326. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/div-with-regexp.js +1 -0
  327. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/empty-blocks.js +1 -0
  328. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/forstatement.js +1 -0
  329. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/if-not.js +1 -0
  330. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/if.js +1 -0
  331. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/ifreturn.js +1 -0
  332. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/ifreturn2.js +1 -0
  333. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/infinite.js +1 -0
  334. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue10.js +1 -0
  335. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue11.js +1 -0
  336. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue13.js +1 -0
  337. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue14.js +1 -0
  338. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue16.js +1 -0
  339. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue17.js +1 -0
  340. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue20.js +1 -0
  341. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue21.js +1 -0
  342. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue25.js +1 -0
  343. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue27.js +1 -0
  344. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue278.js +1 -0
  345. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue28.js +1 -0
  346. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue29.js +1 -0
  347. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue30.js +1 -0
  348. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue34.js +1 -0
  349. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue349.js +1 -0
  350. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue353.js +1 -0
  351. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue372.js +1 -0
  352. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue4.js +1 -0
  353. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue48.js +1 -0
  354. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue50.js +1 -0
  355. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue53.js +1 -0
  356. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue54.1.js +1 -0
  357. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue68.js +1 -0
  358. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue69.js +1 -0
  359. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issue9.js +1 -0
  360. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/issues222_324.js +1 -0
  361. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/mangle.js +1 -0
  362. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/null_string.js +1 -0
  363. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/strict-equals.js +1 -0
  364. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/var.js +1 -0
  365. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/whitespace.js +1 -0
  366. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/expected/with.js +1 -0
  367. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/1e21.js +1 -0
  368. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/array1.js +3 -0
  369. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/array2.js +4 -0
  370. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/array3.js +4 -0
  371. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/array4.js +6 -0
  372. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/assignment.js +20 -0
  373. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/concatstring.js +3 -0
  374. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/const.js +5 -0
  375. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/div-with-regexp.js +1 -0
  376. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/empty-blocks.js +4 -0
  377. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/forstatement.js +10 -0
  378. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/if-not.js +1 -0
  379. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/if.js +6 -0
  380. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/ifreturn.js +9 -0
  381. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/ifreturn2.js +16 -0
  382. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/infinite.js +1 -0
  383. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue10.js +1 -0
  384. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue11.js +3 -0
  385. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue13.js +1 -0
  386. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue14.js +1 -0
  387. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue16.js +1 -0
  388. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue17.js +4 -0
  389. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue20.js +1 -0
  390. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue21.js +6 -0
  391. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue25.js +7 -0
  392. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue27.js +1 -0
  393. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue278.js +1 -0
  394. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue28.js +3 -0
  395. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue29.js +1 -0
  396. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue30.js +3 -0
  397. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue34.js +3 -0
  398. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue349.js +25 -0
  399. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue353.js +4 -0
  400. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue372.js +32 -0
  401. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue4.js +3 -0
  402. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue48.js +1 -0
  403. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue50.js +9 -0
  404. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue53.js +1 -0
  405. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue54.1.js +3 -0
  406. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue68.js +5 -0
  407. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue69.js +1 -0
  408. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issue9.js +4 -0
  409. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/issues222_324.js +82 -0
  410. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/mangle.js +5 -0
  411. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/null_string.js +1 -0
  412. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/strict-equals.js +3 -0
  413. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/var.js +3 -0
  414. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/whitespace.js +21 -0
  415. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/compress/test/with.js +2 -0
  416. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/test/unit/scripts.js +57 -0
  417. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/tmp/hoist.js +33 -0
  418. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/tmp/instrument.js +97 -0
  419. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/tmp/test.js +30 -0
  420. data/vendor/node_modules/browserify/node_modules/browser-pack/node_modules/uglify-js/uglify-js.js +18 -0
  421. data/vendor/node_modules/browserify/node_modules/browser-pack/package.json +70 -0
  422. data/vendor/node_modules/browserify/node_modules/browser-pack/prelude.js +42 -0
  423. data/vendor/node_modules/browserify/node_modules/browser-pack/readme.markdown +81 -0
  424. data/vendor/node_modules/browserify/node_modules/browser-pack/test/comment.js +33 -0
  425. data/vendor/node_modules/browserify/node_modules/browser-pack/test/only_execute_entries.js +26 -0
  426. data/vendor/node_modules/browserify/node_modules/browser-pack/test/order.js +38 -0
  427. data/vendor/node_modules/browserify/node_modules/browser-pack/test/pack.js +28 -0
  428. data/vendor/node_modules/browserify/node_modules/browser-pack/test/raw.js +32 -0
  429. data/vendor/node_modules/browserify/node_modules/browser-pack/test/source-maps-existing.js +56 -0
  430. data/vendor/node_modules/browserify/node_modules/browser-pack/test/source-maps.js +113 -0
  431. data/vendor/node_modules/browserify/node_modules/browser-pack/test/this.js +24 -0
  432. data/vendor/node_modules/browserify/node_modules/browser-resolve/README.md +115 -0
  433. data/vendor/node_modules/browserify/node_modules/browser-resolve/builtin/assert.js +314 -0
  434. data/vendor/node_modules/browserify/node_modules/browser-resolve/builtin/child_process.js +2 -0
  435. data/vendor/node_modules/browserify/node_modules/browser-resolve/builtin/dgram.js +0 -0
  436. data/vendor/node_modules/browserify/node_modules/browser-resolve/builtin/events.js +183 -0
  437. data/vendor/node_modules/browserify/node_modules/browser-resolve/builtin/fs.js +1 -0
  438. data/vendor/node_modules/browserify/node_modules/browser-resolve/builtin/https.js +13 -0
  439. data/vendor/node_modules/browserify/node_modules/browser-resolve/builtin/net.js +1 -0
  440. data/vendor/node_modules/browserify/node_modules/browser-resolve/builtin/path.js +175 -0
  441. data/vendor/node_modules/browserify/node_modules/browser-resolve/builtin/process.js +55 -0
  442. data/vendor/node_modules/browserify/node_modules/browser-resolve/builtin/querystring.js +250 -0
  443. data/vendor/node_modules/browserify/node_modules/browser-resolve/builtin/stream.js +119 -0
  444. data/vendor/node_modules/browserify/node_modules/browser-resolve/builtin/string_decoder.js +161 -0
  445. data/vendor/node_modules/browserify/node_modules/browser-resolve/builtin/sys.js +1 -0
  446. data/vendor/node_modules/browserify/node_modules/browser-resolve/builtin/timers.js +39 -0
  447. data/vendor/node_modules/browserify/node_modules/browser-resolve/builtin/tls.js +1 -0
  448. data/vendor/node_modules/browserify/node_modules/browser-resolve/builtin/tty.js +2 -0
  449. data/vendor/node_modules/browserify/node_modules/browser-resolve/builtin/url.js +604 -0
  450. data/vendor/node_modules/browserify/node_modules/browser-resolve/builtin/util.js +351 -0
  451. data/vendor/node_modules/browserify/node_modules/browser-resolve/empty.js +0 -0
  452. data/vendor/node_modules/browserify/node_modules/browser-resolve/example/builtin.js +4 -0
  453. data/vendor/node_modules/browserify/node_modules/browser-resolve/example/custom/custom.js +1 -0
  454. data/vendor/node_modules/browserify/node_modules/browser-resolve/example/custom/main.js +1 -0
  455. data/vendor/node_modules/browserify/node_modules/browser-resolve/example/custom/package.json +7 -0
  456. data/vendor/node_modules/browserify/node_modules/browser-resolve/example/custom.js +5 -0
  457. data/vendor/node_modules/browserify/node_modules/browser-resolve/example/resolve.js +4 -0
  458. data/vendor/node_modules/browserify/node_modules/browser-resolve/example/skip/main.js +9 -0
  459. data/vendor/node_modules/browserify/node_modules/browser-resolve/example/skip/package.json +7 -0
  460. data/vendor/node_modules/browserify/node_modules/browser-resolve/example/skip.js +5 -0
  461. data/vendor/node_modules/browserify/node_modules/browser-resolve/index.js +170 -0
  462. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/buffer-browserify/README.md +11 -0
  463. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/buffer-browserify/buffer_ieee754.js +84 -0
  464. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/buffer-browserify/index.js +1317 -0
  465. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/buffer-browserify/node_modules/base64-js/README.md +14 -0
  466. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/buffer-browserify/node_modules/base64-js/lib/b64.js +84 -0
  467. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/buffer-browserify/node_modules/base64-js/package.json +33 -0
  468. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/buffer-browserify/node_modules/base64-js/test/runner.js +50 -0
  469. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/buffer-browserify/package.json +49 -0
  470. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/buffer-browserify/test/buffer.js +218 -0
  471. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/console-browserify/LICENCE +19 -0
  472. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/console-browserify/README.md +32 -0
  473. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/console-browserify/index.js +85 -0
  474. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/console-browserify/package.json +80 -0
  475. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/console-browserify/test/index.js +67 -0
  476. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/console-browserify/test/static/index.html +12 -0
  477. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/console-browserify/test/static/test-adapter.js +53 -0
  478. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/crypto-browserify/example/bundle.js +637 -0
  479. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/crypto-browserify/example/index.html +12 -0
  480. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/crypto-browserify/example/test.js +4 -0
  481. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/crypto-browserify/index.js +74 -0
  482. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/crypto-browserify/md5.js +384 -0
  483. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/crypto-browserify/package.json +37 -0
  484. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/crypto-browserify/readme.markdown +20 -0
  485. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/crypto-browserify/rng.js +37 -0
  486. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/crypto-browserify/sha.js +210 -0
  487. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/crypto-browserify/test/simple.js +35 -0
  488. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/get/index.html +9 -0
  489. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/get/main.js +14 -0
  490. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/get/server.js +12 -0
  491. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/headers/index.html +9 -0
  492. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/headers/main.js +18 -0
  493. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/headers/server.js +15 -0
  494. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/data.json +139 -0
  495. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/index.html +9 -0
  496. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/main.js +13 -0
  497. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/LICENSE.APACHE2 +15 -0
  498. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/LICENSE.MIT +24 -0
  499. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/examples/all_docs.js +13 -0
  500. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/index.js +189 -0
  501. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/LICENSE +24 -0
  502. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/README.markdown +11 -0
  503. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/bench.js +26 -0
  504. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/examples/twitterfeed.js +30 -0
  505. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/jsonparse.js +379 -0
  506. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/package.json +36 -0
  507. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic.json +167 -0
  508. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic2.json +180 -0
  509. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/test/primitives.js +54 -0
  510. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/node_modules/jsonparse/test/utf8.js +38 -0
  511. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/package.json +40 -0
  512. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/readme.markdown +145 -0
  513. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/test/bool.js +41 -0
  514. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/test/destroy_missing.js +22 -0
  515. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/test/empty.js +44 -0
  516. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/test/fixtures/all_npm.json +4030 -0
  517. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/test/fn.js +39 -0
  518. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/test/memory.js +69 -0
  519. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/test/multiple_objects.js +42 -0
  520. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/test/multiple_objects_error.js +35 -0
  521. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/test/parsejson.js +28 -0
  522. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/test/stringify.js +41 -0
  523. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/test/stringify_object.js +47 -0
  524. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/test/test.js +35 -0
  525. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/test/test2.js +29 -0
  526. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/node_modules/JSONStream/test/two-ways.js +41 -0
  527. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/json-stream/server.js +10 -0
  528. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/post/index.html +9 -0
  529. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/post/main.js +16 -0
  530. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/post/server.js +19 -0
  531. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/streaming/index.html +9 -0
  532. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/streaming/main.js +16 -0
  533. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/example/streaming/server.js +21 -0
  534. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/index.js +60 -0
  535. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/lib/request.js +131 -0
  536. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/lib/response.js +119 -0
  537. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/node_modules/concat-stream/index.js +48 -0
  538. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/node_modules/concat-stream/package.json +33 -0
  539. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/node_modules/concat-stream/readme.md +31 -0
  540. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/node_modules/concat-stream/test.js +34 -0
  541. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/package.json +49 -0
  542. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/http-browserify/readme.markdown +128 -0
  543. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/LICENSE +18 -0
  544. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/example/async.js +5 -0
  545. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/example/sync.js +3 -0
  546. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/index.js +5 -0
  547. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/lib/async.js +131 -0
  548. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/lib/core.js +4 -0
  549. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/lib/core.json +38 -0
  550. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/lib/sync.js +99 -0
  551. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/package.json +39 -0
  552. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/readme.markdown +134 -0
  553. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/core.js +12 -0
  554. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/filter.js +17 -0
  555. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/filter_sync.js +15 -0
  556. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/mock.js +68 -0
  557. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/mock_sync.js +68 -0
  558. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js +1 -0
  559. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/resolver/baz/doom.js +0 -0
  560. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/resolver/baz/package.json +3 -0
  561. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/resolver/baz/quux.js +1 -0
  562. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js +1 -0
  563. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js +1 -0
  564. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/resolver/cup.coffee +1 -0
  565. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/resolver/foo.js +1 -0
  566. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/resolver/mug.coffee +0 -0
  567. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/resolver/mug.js +0 -0
  568. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/resolver/other_path/lib/other-lib.js +0 -0
  569. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/resolver/other_path/root.js +0 -0
  570. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/resolver.js +144 -0
  571. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/resolve/test/resolver_sync.js +157 -0
  572. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/vm-browserify/README.markdown +103 -0
  573. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/vm-browserify/example/run/bundle.js +473 -0
  574. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/vm-browserify/example/run/entry.js +6 -0
  575. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/vm-browserify/example/run/index.html +9 -0
  576. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/vm-browserify/example/run/server.js +6 -0
  577. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/vm-browserify/index.js +85 -0
  578. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/vm-browserify/package.json +46 -0
  579. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/vm-browserify/testling/run.js +22 -0
  580. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/vm-browserify/testling/test.sh +11 -0
  581. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/zlib-browserify/index.js +43 -0
  582. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/zlib-browserify/package.json +40 -0
  583. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/zlib-browserify/readme.md +1 -0
  584. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/zlib-browserify/test/zlib.test.js +65 -0
  585. data/vendor/node_modules/browserify/node_modules/browser-resolve/node_modules/zlib-browserify/zlib.js +55 -0
  586. data/vendor/node_modules/browserify/node_modules/browser-resolve/package.json +45 -0
  587. data/vendor/node_modules/browserify/node_modules/browser-resolve/test/core.js +28 -0
  588. data/vendor/node_modules/browserify/node_modules/browser-resolve/test/false.js +24 -0
  589. data/vendor/node_modules/browserify/node_modules/browser-resolve/test/fixtures/foo.js +1 -0
  590. data/vendor/node_modules/browserify/node_modules/browser-resolve/test/local.js +15 -0
  591. data/vendor/node_modules/browserify/node_modules/browser-resolve/test/mocha.opts +1 -0
  592. data/vendor/node_modules/browserify/node_modules/browser-resolve/test/modules.js +99 -0
  593. data/vendor/node_modules/browserify/node_modules/concat-stream/index.js +50 -0
  594. data/vendor/node_modules/browserify/node_modules/concat-stream/package.json +33 -0
  595. data/vendor/node_modules/browserify/node_modules/concat-stream/readme.md +31 -0
  596. data/vendor/node_modules/browserify/node_modules/concat-stream/test.js +34 -0
  597. data/vendor/node_modules/browserify/node_modules/duplexer/LICENCE +19 -0
  598. data/vendor/node_modules/browserify/node_modules/duplexer/Makefile +4 -0
  599. data/vendor/node_modules/browserify/node_modules/duplexer/README.md +36 -0
  600. data/vendor/node_modules/browserify/node_modules/duplexer/index.js +77 -0
  601. data/vendor/node_modules/browserify/node_modules/duplexer/package.json +46 -0
  602. data/vendor/node_modules/browserify/node_modules/duplexer/test.js +27 -0
  603. data/vendor/node_modules/browserify/node_modules/inherits/README.md +51 -0
  604. data/vendor/node_modules/browserify/node_modules/inherits/inherits.js +29 -0
  605. data/vendor/node_modules/browserify/node_modules/inherits/package.json +29 -0
  606. data/vendor/node_modules/browserify/node_modules/insert-module-globals/LICENSE +18 -0
  607. data/vendor/node_modules/browserify/node_modules/insert-module-globals/bench/results.txt +18 -0
  608. data/vendor/node_modules/browserify/node_modules/insert-module-globals/bench/run.sh +2 -0
  609. data/vendor/node_modules/browserify/node_modules/insert-module-globals/bin/cmd.js +13 -0
  610. data/vendor/node_modules/browserify/node_modules/insert-module-globals/buffer.js +3863 -0
  611. data/vendor/node_modules/browserify/node_modules/insert-module-globals/bundle.sh +4 -0
  612. data/vendor/node_modules/browserify/node_modules/insert-module-globals/example/files/foo/index.js +6 -0
  613. data/vendor/node_modules/browserify/node_modules/insert-module-globals/example/files/main.js +6 -0
  614. data/vendor/node_modules/browserify/node_modules/insert-module-globals/example/insert.js +10 -0
  615. data/vendor/node_modules/browserify/node_modules/insert-module-globals/index.js +102 -0
  616. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/commondir/README.markdown +45 -0
  617. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/commondir/example/base.js +3 -0
  618. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/commondir/example/dir.js +3 -0
  619. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/commondir/index.js +29 -0
  620. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/commondir/package.json +50 -0
  621. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/commondir/test/dirs.js +66 -0
  622. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/LICENSE +18 -0
  623. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/bench/jquery.js +4 -0
  624. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/bench/results.txt +15 -0
  625. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/bench/run.js +7 -0
  626. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/example/detect.js +6 -0
  627. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/example/src.js +27 -0
  628. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/index.js +166 -0
  629. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/LICENSE +18 -0
  630. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/example/types.js +8 -0
  631. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/index.js +42 -0
  632. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/ChangeLog +18 -0
  633. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/LICENSE.BSD +19 -0
  634. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/README.md +73 -0
  635. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/bin/esparse.js +117 -0
  636. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/bin/esvalidate.js +177 -0
  637. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/component.json +14 -0
  638. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/doc/index.html +473 -0
  639. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/esprima.js +3895 -0
  640. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/examples/detectnestedternary.js +106 -0
  641. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/examples/findbooleantrap.js +173 -0
  642. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/examples/tokendist.js +33 -0
  643. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/index.html +102 -0
  644. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/package.json +47 -0
  645. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/test/benchmarks.html +58 -0
  646. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/test/benchmarks.js +334 -0
  647. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/test/compare.html +69 -0
  648. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/test/compare.js +328 -0
  649. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/test/compat.html +40 -0
  650. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/test/compat.js +239 -0
  651. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/test/coverage.footer.html +3 -0
  652. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/test/coverage.header.html +37 -0
  653. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/test/coverage.html +4676 -0
  654. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/test/index.html +37 -0
  655. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/test/module.html +36 -0
  656. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/test/module.js +129 -0
  657. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/test/reflect.js +422 -0
  658. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/test/run.js +66 -0
  659. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/test/runner.js +387 -0
  660. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/node_modules/esprima/test/test.js +19764 -0
  661. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/package.json +57 -0
  662. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/readme.markdown +52 -0
  663. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/node_modules/astw/test/parent.js +25 -0
  664. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/package.json +68 -0
  665. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/readme.markdown +99 -0
  666. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/argument.js +17 -0
  667. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/assign_implicit.js +13 -0
  668. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/detect.js +17 -0
  669. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/argument.js +6 -0
  670. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/assign_implicit.js +2 -0
  671. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/detect.js +32 -0
  672. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/named_arg.js +6 -0
  673. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/obj.js +1 -0
  674. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/return_hash.js +5 -0
  675. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/files/right_hand.js +2 -0
  676. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/named_arg.js +17 -0
  677. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/obj.js +16 -0
  678. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/package.json +5 -0
  679. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/return_hash.js +13 -0
  680. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/right_hand.js +16 -0
  681. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/lexical-scope/test/shebang.js +19 -0
  682. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/2132fedf7e11adbdb654aea08615ffea7b84cbf0.patch +25 -0
  683. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/README.md +15 -0
  684. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js +52 -0
  685. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/index.js +2 -0
  686. data/vendor/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/package.json +33 -0
  687. data/vendor/node_modules/browserify/node_modules/insert-module-globals/package.json +59 -0
  688. data/vendor/node_modules/browserify/node_modules/insert-module-globals/readme.markdown +86 -0
  689. data/vendor/node_modules/browserify/node_modules/insert-module-globals/test/always/main.js +6 -0
  690. data/vendor/node_modules/browserify/node_modules/insert-module-globals/test/always.js +23 -0
  691. data/vendor/node_modules/browserify/node_modules/insert-module-globals/test/global/filename.js +2 -0
  692. data/vendor/node_modules/browserify/node_modules/insert-module-globals/test/global/main.js +2 -0
  693. data/vendor/node_modules/browserify/node_modules/insert-module-globals/test/global.js +49 -0
  694. data/vendor/node_modules/browserify/node_modules/insert-module-globals/test/insert/buffer.js +1 -0
  695. data/vendor/node_modules/browserify/node_modules/insert-module-globals/test/insert/foo/buf.js +4 -0
  696. data/vendor/node_modules/browserify/node_modules/insert-module-globals/test/insert/foo/index.js +4 -0
  697. data/vendor/node_modules/browserify/node_modules/insert-module-globals/test/insert/main.js +4 -0
  698. data/vendor/node_modules/browserify/node_modules/insert-module-globals/test/insert.js +35 -0
  699. data/vendor/node_modules/browserify/node_modules/module-deps/LICENSE +18 -0
  700. data/vendor/node_modules/browserify/node_modules/module-deps/cmd.js +8 -0
  701. data/vendor/node_modules/browserify/node_modules/module-deps/example/deps.js +8 -0
  702. data/vendor/node_modules/browserify/node_modules/module-deps/example/files/bar.js +3 -0
  703. data/vendor/node_modules/browserify/node_modules/module-deps/example/files/foo.js +5 -0
  704. data/vendor/node_modules/browserify/node_modules/module-deps/example/files/main.js +2 -0
  705. data/vendor/node_modules/browserify/node_modules/module-deps/example/files/xyz.js +2 -0
  706. data/vendor/node_modules/browserify/node_modules/module-deps/index.js +177 -0
  707. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/LICENSE +18 -0
  708. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/example/strings.js +6 -0
  709. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/example/strings_src.js +3 -0
  710. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/index.js +66 -0
  711. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/LICENSE.BSD +19 -0
  712. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/LICENSE.source-map +27 -0
  713. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/README.md +99 -0
  714. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/bin/escodegen.js +43 -0
  715. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/bin/esgenerate.js +43 -0
  716. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/escodegen.js +2245 -0
  717. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/CHANGELOG.md +58 -0
  718. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/LICENSE +28 -0
  719. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/Makefile.dryice.js +166 -0
  720. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/README.md +347 -0
  721. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/assert-shim.js +56 -0
  722. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/mini-require.js +152 -0
  723. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  724. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/prefix-utils.jsm +18 -0
  725. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/suffix-browser.js +8 -0
  726. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  727. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/suffix-utils.jsm +21 -0
  728. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/test-prefix.js +8 -0
  729. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/build/test-suffix.js +3 -0
  730. data/vendor/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
  731. data/vendor/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
  732. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/base64.js +42 -0
  733. data/vendor/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
  734. data/vendor/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
  735. data/vendor/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
  736. data/vendor/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
  737. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map/util.js +91 -0
  738. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/lib/source-map.js +8 -0
  739. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  740. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/README.md +119 -0
  741. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  742. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/package.json +40 -0
  743. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/package.json +81 -0
  744. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/run-tests.js +73 -0
  745. data/vendor/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
  746. data/vendor/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
  747. data/vendor/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
  748. data/vendor/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
  749. data/vendor/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
  750. data/vendor/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
  751. data/vendor/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
  752. data/vendor/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
  753. data/vendor/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
  754. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/node_modules/source-map/test/source-map/util.js +152 -0
  755. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/escodegen/package.json +55 -0
  756. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/ChangeLog +18 -0
  757. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/LICENSE.BSD +19 -0
  758. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/README.md +73 -0
  759. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/bin/esparse.js +117 -0
  760. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/bin/esvalidate.js +177 -0
  761. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/component.json +14 -0
  762. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/doc/index.html +473 -0
  763. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/esprima.js +3895 -0
  764. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/examples/detectnestedternary.js +106 -0
  765. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/examples/findbooleantrap.js +173 -0
  766. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/examples/tokendist.js +33 -0
  767. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/index.html +102 -0
  768. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/package.json +47 -0
  769. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/benchmarks.html +58 -0
  770. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/benchmarks.js +334 -0
  771. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/compare.html +69 -0
  772. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/compare.js +328 -0
  773. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/compat.html +40 -0
  774. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/compat.js +239 -0
  775. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/coverage.footer.html +3 -0
  776. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/coverage.header.html +37 -0
  777. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/coverage.html +4676 -0
  778. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/index.html +37 -0
  779. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/module.html +36 -0
  780. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/module.js +129 -0
  781. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/reflect.js +422 -0
  782. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/run.js +66 -0
  783. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/runner.js +387 -0
  784. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/node_modules/esprima/test/test.js +19764 -0
  785. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/package.json +43 -0
  786. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/readme.markdown +73 -0
  787. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/both.js +26 -0
  788. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/chained.js +9 -0
  789. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/files/both.js +4 -0
  790. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/files/chained.js +5 -0
  791. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/files/nested.js +22 -0
  792. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/files/shebang.js +5 -0
  793. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/files/sparse-array.js +3 -0
  794. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/files/strings.js +13 -0
  795. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/files/word.js +13 -0
  796. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/nested.js +9 -0
  797. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/return.js +9 -0
  798. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/shebang.js +9 -0
  799. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/sparse-array.js +14 -0
  800. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/strings.js +9 -0
  801. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/detective/test/word.js +12 -0
  802. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/LICENSE +18 -0
  803. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/example/async.js +5 -0
  804. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/example/sync.js +3 -0
  805. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/index.js +5 -0
  806. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/lib/async.js +131 -0
  807. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/lib/core.js +4 -0
  808. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/lib/core.json +38 -0
  809. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/lib/sync.js +99 -0
  810. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/package.json +39 -0
  811. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/readme.markdown +134 -0
  812. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/core.js +12 -0
  813. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/filter.js +17 -0
  814. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/filter_sync.js +15 -0
  815. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/mock.js +68 -0
  816. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/mock_sync.js +68 -0
  817. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js +1 -0
  818. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver/baz/doom.js +0 -0
  819. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver/baz/package.json +3 -0
  820. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver/baz/quux.js +1 -0
  821. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js +1 -0
  822. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js +1 -0
  823. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver/cup.coffee +1 -0
  824. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver/foo.js +1 -0
  825. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver/mug.coffee +0 -0
  826. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver/mug.js +0 -0
  827. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver/other_path/lib/other-lib.js +0 -0
  828. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver/other_path/root.js +0 -0
  829. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver.js +144 -0
  830. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/resolve/test/resolver_sync.js +157 -0
  831. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/through/LICENSE.APACHE2 +15 -0
  832. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/through/LICENSE.MIT +24 -0
  833. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/through/index.js +108 -0
  834. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/through/package.json +50 -0
  835. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/through/readme.markdown +63 -0
  836. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/through/test/auto-destroy.js +30 -0
  837. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/through/test/buffering.js +71 -0
  838. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/through/test/end.js +45 -0
  839. data/vendor/node_modules/browserify/node_modules/module-deps/node_modules/through/test/index.js +114 -0
  840. data/vendor/node_modules/browserify/node_modules/module-deps/package.json +55 -0
  841. data/vendor/node_modules/browserify/node_modules/module-deps/readme.markdown +135 -0
  842. data/vendor/node_modules/browserify/node_modules/module-deps/test/bundle.js +21 -0
  843. data/vendor/node_modules/browserify/node_modules/module-deps/test/deps.js +42 -0
  844. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/bar.js +3 -0
  845. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/filterable.js +10 -0
  846. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/foo.js +5 -0
  847. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/main.js +2 -0
  848. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/tr_module/f.js +1 -0
  849. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/tr_module/main.js +7 -0
  850. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/tr_module/node_modules/g/index.js +1 -0
  851. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/tr_module/node_modules/g/node_modules/insert-ggg/index.js +7 -0
  852. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/tr_module/node_modules/g/package.json +6 -0
  853. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/tr_module/node_modules/insert-aaa/index.js +7 -0
  854. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/tr_module/node_modules/insert-bbb/index.js +7 -0
  855. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/tr_module/node_modules/m/index.js +3 -0
  856. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/tr_sh/f.js +1 -0
  857. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/tr_sh/main.js +7 -0
  858. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/tr_sh/node_modules/g/index.js +1 -0
  859. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/tr_sh/node_modules/g/package.json +6 -0
  860. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/tr_sh/node_modules/g/tr_g.js +6 -0
  861. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/tr_sh/node_modules/m/index.js +3 -0
  862. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/tr_sh/tr_a.js +6 -0
  863. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/tr_sh/tr_b.js +6 -0
  864. data/vendor/node_modules/browserify/node_modules/module-deps/test/files/xyz.js +2 -0
  865. data/vendor/node_modules/browserify/node_modules/module-deps/test/filter.js +37 -0
  866. data/vendor/node_modules/browserify/node_modules/module-deps/test/noparse.js +37 -0
  867. data/vendor/node_modules/browserify/node_modules/module-deps/test/tr_fn.js +29 -0
  868. data/vendor/node_modules/browserify/node_modules/module-deps/test/tr_module.js +21 -0
  869. data/vendor/node_modules/browserify/node_modules/module-deps/test/tr_sh.js +21 -0
  870. data/vendor/node_modules/browserify/node_modules/optimist/LICENSE +21 -0
  871. data/vendor/node_modules/browserify/node_modules/optimist/example/bool.js +10 -0
  872. data/vendor/node_modules/browserify/node_modules/optimist/example/boolean_double.js +7 -0
  873. data/vendor/node_modules/browserify/node_modules/optimist/example/boolean_single.js +7 -0
  874. data/vendor/node_modules/browserify/node_modules/optimist/example/default_hash.js +8 -0
  875. data/vendor/node_modules/browserify/node_modules/optimist/example/default_singles.js +7 -0
  876. data/vendor/node_modules/browserify/node_modules/optimist/example/divide.js +8 -0
  877. data/vendor/node_modules/browserify/node_modules/optimist/example/line_count.js +20 -0
  878. data/vendor/node_modules/browserify/node_modules/optimist/example/line_count_options.js +29 -0
  879. data/vendor/node_modules/browserify/node_modules/optimist/example/line_count_wrap.js +29 -0
  880. data/vendor/node_modules/browserify/node_modules/optimist/example/nonopt.js +4 -0
  881. data/vendor/node_modules/browserify/node_modules/optimist/example/reflect.js +2 -0
  882. data/vendor/node_modules/browserify/node_modules/optimist/example/short.js +3 -0
  883. data/vendor/node_modules/browserify/node_modules/optimist/example/string.js +11 -0
  884. data/vendor/node_modules/browserify/node_modules/optimist/example/usage-options.js +19 -0
  885. data/vendor/node_modules/browserify/node_modules/optimist/example/xup.js +10 -0
  886. data/vendor/node_modules/browserify/node_modules/optimist/index.js +478 -0
  887. data/vendor/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/README.markdown +70 -0
  888. data/vendor/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/example/center.js +10 -0
  889. data/vendor/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/example/meat.js +3 -0
  890. data/vendor/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/index.js +76 -0
  891. data/vendor/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/package.json +44 -0
  892. data/vendor/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/test/break.js +30 -0
  893. data/vendor/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/test/idleness.txt +63 -0
  894. data/vendor/node_modules/browserify/node_modules/optimist/node_modules/wordwrap/test/wrap.js +31 -0
  895. data/vendor/node_modules/browserify/node_modules/optimist/package.json +45 -0
  896. data/vendor/node_modules/browserify/node_modules/optimist/readme.markdown +487 -0
  897. data/vendor/node_modules/browserify/node_modules/optimist/test/_/argv.js +2 -0
  898. data/vendor/node_modules/browserify/node_modules/optimist/test/_/bin.js +3 -0
  899. data/vendor/node_modules/browserify/node_modules/optimist/test/_.js +71 -0
  900. data/vendor/node_modules/browserify/node_modules/optimist/test/parse.js +446 -0
  901. data/vendor/node_modules/browserify/node_modules/optimist/test/usage.js +292 -0
  902. data/vendor/node_modules/browserify/node_modules/shell-quote/README.markdown +72 -0
  903. data/vendor/node_modules/browserify/node_modules/shell-quote/example/parse.js +3 -0
  904. data/vendor/node_modules/browserify/node_modules/shell-quote/example/quote.js +3 -0
  905. data/vendor/node_modules/browserify/node_modules/shell-quote/index.js +33 -0
  906. data/vendor/node_modules/browserify/node_modules/shell-quote/package.json +46 -0
  907. data/vendor/node_modules/browserify/node_modules/shell-quote/test/parse.js +14 -0
  908. data/vendor/node_modules/browserify/node_modules/shell-quote/test/quote.js +15 -0
  909. data/vendor/node_modules/browserify/node_modules/syntax-error/LICENSE +18 -0
  910. data/vendor/node_modules/browserify/node_modules/syntax-error/example/check.js +12 -0
  911. data/vendor/node_modules/browserify/node_modules/syntax-error/example/src.js +9 -0
  912. data/vendor/node_modules/browserify/node_modules/syntax-error/index.js +54 -0
  913. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/LICENSE.BSD +19 -0
  914. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/README.md +74 -0
  915. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/assets/codemirror/codemirror.css +112 -0
  916. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/assets/codemirror/codemirror.js +2972 -0
  917. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/assets/codemirror/javascript.js +360 -0
  918. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/assets/json2.js +487 -0
  919. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/assets/style.css +164 -0
  920. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/assets/yui/treeview-min.js +12 -0
  921. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/assets/yui/treeview-sprite.gif +0 -0
  922. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/assets/yui/treeview.css +7 -0
  923. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/assets/yui/yahoo-dom-event.js +14 -0
  924. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/bin/esparse.js +42 -0
  925. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/changes +92 -0
  926. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/cm +696 -0
  927. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/demo/checkenv.js +42 -0
  928. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/demo/collector.html +82 -0
  929. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/demo/collector.js +170 -0
  930. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/demo/functiontrace.html +106 -0
  931. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/demo/functiontrace.js +123 -0
  932. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/demo/parse.css +82 -0
  933. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/demo/parse.html +352 -0
  934. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/demo/precedence.html +225 -0
  935. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/demo/rewrite.html +120 -0
  936. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/demo/rewrite.js +71 -0
  937. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/esprima.js +3577 -0
  938. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/index.html +103 -0
  939. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/package.json +42 -0
  940. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/Tokenizer.js +646 -0
  941. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/XMLHttpRequest.js +509 -0
  942. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/ZeParser.js +2185 -0
  943. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/backbone-0.5.3.js +1158 -0
  944. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/benchmark.js +3261 -0
  945. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/escodegen.js +906 -0
  946. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/esmorph.js +240 -0
  947. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/ext-core-3.0.0.js +6579 -0
  948. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/ext-core-3.1.0.js +10255 -0
  949. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/jquery-1.6.4.js +9046 -0
  950. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/jquery-1.7.1.js +9266 -0
  951. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/jquery.mobile-1.0.js +6951 -0
  952. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/jsdefs.js +731 -0
  953. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/jslex.js +588 -0
  954. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/jsparse.js +1921 -0
  955. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/mootools-1.3.2.js +5952 -0
  956. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/mootools-1.4.1.js +6297 -0
  957. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/parse-js.js +1342 -0
  958. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/platform.js +878 -0
  959. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/prototype-1.6.1.js +4874 -0
  960. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/prototype-1.7.0.0.js +6082 -0
  961. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/3rdparty/underscore-1.2.3.js +981 -0
  962. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/benchmarks.html +58 -0
  963. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/benchmarks.js +328 -0
  964. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/compare.html +140 -0
  965. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/compare.js +270 -0
  966. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/compat.html +40 -0
  967. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/compat.js +239 -0
  968. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/coverage.footer.html +3 -0
  969. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/coverage.header.html +37 -0
  970. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/coverage.html +3617 -0
  971. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/index.html +36 -0
  972. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/reflect.js +403 -0
  973. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/run.js +66 -0
  974. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/test/test.js +16659 -0
  975. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/tools/generate-unicode-regex.py +164 -0
  976. data/vendor/node_modules/browserify/node_modules/syntax-error/node_modules/esprima/tools/update-coverage.sh +28 -0
  977. data/vendor/node_modules/browserify/node_modules/syntax-error/package.json +53 -0
  978. data/vendor/node_modules/browserify/node_modules/syntax-error/readme.markdown +87 -0
  979. data/vendor/node_modules/browserify/node_modules/syntax-error/test/check.js +17 -0
  980. data/vendor/node_modules/browserify/node_modules/syntax-error/test/sources/check.js +9 -0
  981. data/vendor/node_modules/browserify/node_modules/through/LICENSE.APACHE2 +15 -0
  982. data/vendor/node_modules/browserify/node_modules/through/LICENSE.MIT +24 -0
  983. data/vendor/node_modules/browserify/node_modules/through/index.js +103 -0
  984. data/vendor/node_modules/browserify/node_modules/through/package.json +50 -0
  985. data/vendor/node_modules/browserify/node_modules/through/readme.markdown +43 -0
  986. data/vendor/node_modules/browserify/node_modules/through/test/buffering.js +71 -0
  987. data/vendor/node_modules/browserify/node_modules/through/test/end.js +26 -0
  988. data/vendor/node_modules/browserify/node_modules/through/test/index.js +114 -0
  989. data/vendor/node_modules/browserify/node_modules/umd/README.md +46 -0
  990. data/vendor/node_modules/browserify/node_modules/umd/index.js +63 -0
  991. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/README.md +81 -0
  992. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/index.js +39 -0
  993. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/callsite/History.md +10 -0
  994. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/callsite/Makefile +6 -0
  995. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/callsite/Readme.md +44 -0
  996. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/callsite/index.js +10 -0
  997. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/callsite/package.json +31 -0
  998. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/LICENSE +18 -0
  999. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/example/async.js +5 -0
  1000. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/example/sync.js +3 -0
  1001. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/index.js +5 -0
  1002. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/lib/async.js +131 -0
  1003. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/lib/core.js +4 -0
  1004. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/lib/core.json +38 -0
  1005. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/lib/sync.js +99 -0
  1006. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/package.json +39 -0
  1007. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/readme.markdown +134 -0
  1008. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/core.js +12 -0
  1009. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/filter.js +17 -0
  1010. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/filter_sync.js +15 -0
  1011. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/mock.js +68 -0
  1012. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/mock_sync.js +68 -0
  1013. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js +1 -0
  1014. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/baz/doom.js +0 -0
  1015. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/baz/package.json +3 -0
  1016. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/baz/quux.js +1 -0
  1017. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js +1 -0
  1018. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js +1 -0
  1019. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/cup.coffee +1 -0
  1020. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/foo.js +1 -0
  1021. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/mug.coffee +0 -0
  1022. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/mug.js +0 -0
  1023. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/other_path/lib/other-lib.js +0 -0
  1024. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver/other_path/root.js +0 -0
  1025. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver.js +144 -0
  1026. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/node_modules/resolve/test/resolver_sync.js +157 -0
  1027. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/package.json +43 -0
  1028. data/vendor/node_modules/browserify/node_modules/umd/node_modules/rfile/test/index.js +43 -0
  1029. data/vendor/node_modules/browserify/node_modules/umd/node_modules/ruglify/README.md +26 -0
  1030. data/vendor/node_modules/browserify/node_modules/umd/node_modules/ruglify/index.js +9 -0
  1031. data/vendor/node_modules/browserify/node_modules/umd/node_modules/ruglify/package.json +46 -0
  1032. data/vendor/node_modules/browserify/node_modules/umd/node_modules/ruglify/test/fixture/jquery.js +9597 -0
  1033. data/vendor/node_modules/browserify/node_modules/umd/node_modules/ruglify/test/fixture/jquery.min.js +3 -0
  1034. data/vendor/node_modules/browserify/node_modules/umd/node_modules/ruglify/test/index.js +8 -0
  1035. data/vendor/node_modules/browserify/node_modules/umd/node_modules/through/LICENSE.APACHE2 +15 -0
  1036. data/vendor/node_modules/browserify/node_modules/umd/node_modules/through/LICENSE.MIT +24 -0
  1037. data/vendor/node_modules/browserify/node_modules/umd/node_modules/through/index.js +108 -0
  1038. data/vendor/node_modules/browserify/node_modules/umd/node_modules/through/package.json +50 -0
  1039. data/vendor/node_modules/browserify/node_modules/umd/node_modules/through/readme.markdown +63 -0
  1040. data/vendor/node_modules/browserify/node_modules/umd/node_modules/through/test/auto-destroy.js +30 -0
  1041. data/vendor/node_modules/browserify/node_modules/umd/node_modules/through/test/buffering.js +71 -0
  1042. data/vendor/node_modules/browserify/node_modules/umd/node_modules/through/test/end.js +45 -0
  1043. data/vendor/node_modules/browserify/node_modules/umd/node_modules/through/test/index.js +114 -0
  1044. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/README.md +544 -0
  1045. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/bin/uglifyjs +370 -0
  1046. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/ast.js +964 -0
  1047. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/compress.js +1968 -0
  1048. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/mozilla-ast.js +265 -0
  1049. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/output.js +1220 -0
  1050. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/parse.js +1407 -0
  1051. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/scope.js +580 -0
  1052. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/sourcemap.js +81 -0
  1053. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/transform.js +218 -0
  1054. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/lib/utils.js +288 -0
  1055. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/CHANGELOG.md +58 -0
  1056. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/LICENSE +28 -0
  1057. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/Makefile.dryice.js +166 -0
  1058. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/README.md +347 -0
  1059. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/assert-shim.js +56 -0
  1060. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/mini-require.js +152 -0
  1061. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  1062. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/prefix-utils.jsm +18 -0
  1063. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/suffix-browser.js +8 -0
  1064. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  1065. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/suffix-utils.jsm +21 -0
  1066. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/test-prefix.js +8 -0
  1067. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/build/test-suffix.js +3 -0
  1068. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/array-set.js +96 -0
  1069. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
  1070. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64.js +42 -0
  1071. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/binary-search.js +81 -0
  1072. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-consumer.js +426 -0
  1073. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-generator.js +381 -0
  1074. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-node.js +353 -0
  1075. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map/util.js +91 -0
  1076. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/lib/source-map.js +8 -0
  1077. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  1078. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/README.md +119 -0
  1079. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  1080. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/package.json +40 -0
  1081. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/package.json +81 -0
  1082. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/run-tests.js +73 -0
  1083. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-api.js +26 -0
  1084. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-array-set.js +71 -0
  1085. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
  1086. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64.js +35 -0
  1087. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  1088. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-dog-fooding.js +72 -0
  1089. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-consumer.js +291 -0
  1090. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-generator.js +391 -0
  1091. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-node.js +282 -0
  1092. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/node_modules/source-map/test/source-map/util.js +152 -0
  1093. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/package.json +48 -0
  1094. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/arrays.js +12 -0
  1095. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/blocks.js +49 -0
  1096. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/conditionals.js +143 -0
  1097. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/dead-code.js +89 -0
  1098. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/debugger.js +24 -0
  1099. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/drop-unused.js +97 -0
  1100. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/issue-105.js +17 -0
  1101. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/issue-12.js +11 -0
  1102. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/issue-22.js +17 -0
  1103. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/issue-44.js +31 -0
  1104. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/issue-59.js +30 -0
  1105. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/labels.js +163 -0
  1106. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/loops.js +123 -0
  1107. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/properties.js +25 -0
  1108. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/sequences.js +161 -0
  1109. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/compress/switch.js +210 -0
  1110. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/test/run-tests.js +170 -0
  1111. data/vendor/node_modules/browserify/node_modules/umd/node_modules/uglify-js/tools/node.js +164 -0
  1112. data/vendor/node_modules/browserify/node_modules/umd/package.json +39 -0
  1113. data/vendor/node_modules/browserify/node_modules/umd/template.js +33 -0
  1114. data/vendor/node_modules/browserify/package.json +65 -0
  1115. data/vendor/node_modules/browserify/readme.markdown +426 -0
  1116. data/vendor/node_modules/browserify/test/backbone.js +22 -0
  1117. data/vendor/node_modules/browserify/test/bin.js +31 -0
  1118. data/vendor/node_modules/browserify/test/bin_entry.js +31 -0
  1119. data/vendor/node_modules/browserify/test/buffer.js +118 -0
  1120. data/vendor/node_modules/browserify/test/bundle_sourcemap.js +30 -0
  1121. data/vendor/node_modules/browserify/test/catch/main.js +1 -0
  1122. data/vendor/node_modules/browserify/test/catch.js +22 -0
  1123. data/vendor/node_modules/browserify/test/circular/a.js +3 -0
  1124. data/vendor/node_modules/browserify/test/circular/b.js +1 -0
  1125. data/vendor/node_modules/browserify/test/circular/main.js +1 -0
  1126. data/vendor/node_modules/browserify/test/circular.js +34 -0
  1127. data/vendor/node_modules/browserify/test/coffee_bin/main.coffee +2 -0
  1128. data/vendor/node_modules/browserify/test/coffee_bin/x.coffee +1 -0
  1129. data/vendor/node_modules/browserify/test/coffee_bin.js +36 -0
  1130. data/vendor/node_modules/browserify/test/comment/main.js +2 -0
  1131. data/vendor/node_modules/browserify/test/comment.js +16 -0
  1132. data/vendor/node_modules/browserify/test/crypto.js +37 -0
  1133. data/vendor/node_modules/browserify/test/dnode.js +27 -0
  1134. data/vendor/node_modules/browserify/test/dollar/dollar/index.js +7 -0
  1135. data/vendor/node_modules/browserify/test/dollar.js +18 -0
  1136. data/vendor/node_modules/browserify/test/entry/main.js +1 -0
  1137. data/vendor/node_modules/browserify/test/entry/one.js +1 -0
  1138. data/vendor/node_modules/browserify/test/entry/two.js +1 -0
  1139. data/vendor/node_modules/browserify/test/entry.js +19 -0
  1140. data/vendor/node_modules/browserify/test/entry_exec/fail.js +1 -0
  1141. data/vendor/node_modules/browserify/test/entry_exec/main.js +1 -0
  1142. data/vendor/node_modules/browserify/test/entry_exec.js +15 -0
  1143. data/vendor/node_modules/browserify/test/error_code/src.js +2 -0
  1144. data/vendor/node_modules/browserify/test/error_code.js +22 -0
  1145. data/vendor/node_modules/browserify/test/export/entry.js +1 -0
  1146. data/vendor/node_modules/browserify/test/export.js +35 -0
  1147. data/vendor/node_modules/browserify/test/fake/fake_fs.js +1 -0
  1148. data/vendor/node_modules/browserify/test/fake/main.js +2 -0
  1149. data/vendor/node_modules/browserify/test/fake.js +15 -0
  1150. data/vendor/node_modules/browserify/test/field/miss.js +1 -0
  1151. data/vendor/node_modules/browserify/test/field/node_modules/z-miss/browser.js +1 -0
  1152. data/vendor/node_modules/browserify/test/field/node_modules/z-miss/main.js +1 -0
  1153. data/vendor/node_modules/browserify/test/field/node_modules/z-miss/package.json +4 -0
  1154. data/vendor/node_modules/browserify/test/field/node_modules/z-object/browser.js +1 -0
  1155. data/vendor/node_modules/browserify/test/field/node_modules/z-object/main.js +1 -0
  1156. data/vendor/node_modules/browserify/test/field/node_modules/z-object/package.json +4 -0
  1157. data/vendor/node_modules/browserify/test/field/node_modules/z-string/browser.js +1 -0
  1158. data/vendor/node_modules/browserify/test/field/node_modules/z-string/main.js +1 -0
  1159. data/vendor/node_modules/browserify/test/field/node_modules/z-string/package.json +4 -0
  1160. data/vendor/node_modules/browserify/test/field/node_modules/z-sub/browser/a.js +1 -0
  1161. data/vendor/node_modules/browserify/test/field/node_modules/z-sub/browser/b.js +1 -0
  1162. data/vendor/node_modules/browserify/test/field/node_modules/z-sub/main.js +1 -0
  1163. data/vendor/node_modules/browserify/test/field/node_modules/z-sub/package.json +4 -0
  1164. data/vendor/node_modules/browserify/test/field/object.js +1 -0
  1165. data/vendor/node_modules/browserify/test/field/string.js +1 -0
  1166. data/vendor/node_modules/browserify/test/field/sub.js +1 -0
  1167. data/vendor/node_modules/browserify/test/field.js +64 -0
  1168. data/vendor/node_modules/browserify/test/file_event.js +33 -0
  1169. data/vendor/node_modules/browserify/test/global/buffer.js +2 -0
  1170. data/vendor/node_modules/browserify/test/global/filename.js +2 -0
  1171. data/vendor/node_modules/browserify/test/global/main.js +2 -0
  1172. data/vendor/node_modules/browserify/test/global/tick.js +3 -0
  1173. data/vendor/node_modules/browserify/test/global.js +54 -0
  1174. data/vendor/node_modules/browserify/test/ignore/main.js +1 -0
  1175. data/vendor/node_modules/browserify/test/ignore/skip.js +1 -0
  1176. data/vendor/node_modules/browserify/test/ignore.js +16 -0
  1177. data/vendor/node_modules/browserify/test/json/beep.json +4 -0
  1178. data/vendor/node_modules/browserify/test/json/main.js +1 -0
  1179. data/vendor/node_modules/browserify/test/json.js +18 -0
  1180. data/vendor/node_modules/browserify/test/maxlisteners/main.js +3 -0
  1181. data/vendor/node_modules/browserify/test/maxlisteners.js +13 -0
  1182. data/vendor/node_modules/browserify/test/multi_bundle/a.js +2 -0
  1183. data/vendor/node_modules/browserify/test/multi_bundle/b.js +5 -0
  1184. data/vendor/node_modules/browserify/test/multi_bundle.js +44 -0
  1185. data/vendor/node_modules/browserify/test/multi_entry/a.js +2 -0
  1186. data/vendor/node_modules/browserify/test/multi_entry/b.js +2 -0
  1187. data/vendor/node_modules/browserify/test/multi_entry/c.js +2 -0
  1188. data/vendor/node_modules/browserify/test/multi_entry.js +25 -0
  1189. data/vendor/node_modules/browserify/test/node_modules/beep/index.js +1 -0
  1190. data/vendor/node_modules/browserify/test/process/main.js +3 -0
  1191. data/vendor/node_modules/browserify/test/process/one.js +1 -0
  1192. data/vendor/node_modules/browserify/test/process/two.js +1 -0
  1193. data/vendor/node_modules/browserify/test/process.js +20 -0
  1194. data/vendor/node_modules/browserify/test/require_cache.js +19 -0
  1195. data/vendor/node_modules/browserify/test/retarget.js +23 -0
  1196. data/vendor/node_modules/browserify/test/reverse_multi_bundle/app.js +22 -0
  1197. data/vendor/node_modules/browserify/test/reverse_multi_bundle/lazy.js +4 -0
  1198. data/vendor/node_modules/browserify/test/reverse_multi_bundle/shared.js +4 -0
  1199. data/vendor/node_modules/browserify/test/reverse_multi_bundle.js +43 -0
  1200. data/vendor/node_modules/browserify/test/shebang/foo.js +2 -0
  1201. data/vendor/node_modules/browserify/test/shebang/main.js +4 -0
  1202. data/vendor/node_modules/browserify/test/shebang.js +11 -0
  1203. data/vendor/node_modules/browserify/test/standalone/main.js +3 -0
  1204. data/vendor/node_modules/browserify/test/standalone/one.js +1 -0
  1205. data/vendor/node_modules/browserify/test/standalone/two.js +1 -0
  1206. data/vendor/node_modules/browserify/test/standalone.js +73 -0
  1207. data/vendor/node_modules/browserify/test/subdep/index.js +1 -0
  1208. data/vendor/node_modules/browserify/test/subdep/node_modules/qq/b.js +1 -0
  1209. data/vendor/node_modules/browserify/test/subdep/node_modules/qq/ignore_me.js +1 -0
  1210. data/vendor/node_modules/browserify/test/subdep/node_modules/qq/node_modules/a/index.js +1 -0
  1211. data/vendor/node_modules/browserify/test/subdep/node_modules/qq/node_modules/a/package.json +5 -0
  1212. data/vendor/node_modules/browserify/test/subdep/node_modules/qq/node_modules/c/index.js +1 -0
  1213. data/vendor/node_modules/browserify/test/subdep/node_modules/qq/node_modules/c/package.json +5 -0
  1214. data/vendor/node_modules/browserify/test/subdep/node_modules/qq/node_modules/f/index.js +1 -0
  1215. data/vendor/node_modules/browserify/test/subdep/node_modules/qq/node_modules/z/index.js +1 -0
  1216. data/vendor/node_modules/browserify/test/subdep/node_modules/qq/package.json +3 -0
  1217. data/vendor/node_modules/browserify/test/subdep/package.json +6 -0
  1218. data/vendor/node_modules/browserify/test/subdep.js +16 -0
  1219. data/vendor/node_modules/browserify/test/tr/f.js +1 -0
  1220. data/vendor/node_modules/browserify/test/tr/main.js +7 -0
  1221. data/vendor/node_modules/browserify/test/tr/node_modules/g/index.js +1 -0
  1222. data/vendor/node_modules/browserify/test/tr/node_modules/g/node_modules/insert-ggg/index.js +7 -0
  1223. data/vendor/node_modules/browserify/test/tr/node_modules/g/package.json +6 -0
  1224. data/vendor/node_modules/browserify/test/tr/node_modules/insert-aaa/index.js +7 -0
  1225. data/vendor/node_modules/browserify/test/tr/node_modules/insert-bbb/index.js +7 -0
  1226. data/vendor/node_modules/browserify/test/tr/node_modules/m/index.js +3 -0
  1227. data/vendor/node_modules/browserify/test/tr.js +21 -0
  1228. data/vendor/node_modules/browserify/test/util.js +62 -0
  1229. data/vendor/node_modules/wisp/History.md +152 -0
  1230. data/vendor/node_modules/wisp/LICENSE +24 -0
  1231. data/vendor/node_modules/wisp/Makefile +80 -0
  1232. data/vendor/node_modules/wisp/Readme.md +615 -0
  1233. data/vendor/node_modules/wisp/analyzer.js +385 -0
  1234. data/vendor/node_modules/wisp/ast.js +214 -0
  1235. data/vendor/node_modules/wisp/backend/javascript/writer.js +212 -0
  1236. data/vendor/node_modules/wisp/bin/wisp.js +2 -0
  1237. data/vendor/node_modules/wisp/compiler.js +1028 -0
  1238. data/vendor/node_modules/wisp/design.md +114 -0
  1239. data/vendor/node_modules/wisp/engine/browser.js +65 -0
  1240. data/vendor/node_modules/wisp/engine/node.js +20 -0
  1241. data/vendor/node_modules/wisp/index.html +405 -0
  1242. data/vendor/node_modules/wisp/interactivate/Makefile +38 -0
  1243. data/vendor/node_modules/wisp/interactivate/Readme.md +24 -0
  1244. data/vendor/node_modules/wisp/interactivate/build/cache.manifest +12 -0
  1245. data/vendor/node_modules/wisp/interactivate/build/codemirror-compressed.js +4 -0
  1246. data/vendor/node_modules/wisp/interactivate/build/codemirror.css +248 -0
  1247. data/vendor/node_modules/wisp/interactivate/build/main.js +5430 -0
  1248. data/vendor/node_modules/wisp/interactivate/build/solarized.css +207 -0
  1249. data/vendor/node_modules/wisp/interactivate/host.wisp +83 -0
  1250. data/vendor/node_modules/wisp/interactivate/index.html +392 -0
  1251. data/vendor/node_modules/wisp/interactivate/main.wisp +37 -0
  1252. data/vendor/node_modules/wisp/interactivate/node_modules/codemirror-activine/License.md +18 -0
  1253. data/vendor/node_modules/wisp/interactivate/node_modules/codemirror-activine/Readme.md +22 -0
  1254. data/vendor/node_modules/wisp/interactivate/node_modules/codemirror-activine/core.js +33 -0
  1255. data/vendor/node_modules/wisp/interactivate/node_modules/codemirror-activine/package.json +36 -0
  1256. data/vendor/node_modules/wisp/interactivate/node_modules/codemirror-hashare/License.md +18 -0
  1257. data/vendor/node_modules/wisp/interactivate/node_modules/codemirror-hashare/Readme.md +23 -0
  1258. data/vendor/node_modules/wisp/interactivate/node_modules/codemirror-hashare/core.js +31 -0
  1259. data/vendor/node_modules/wisp/interactivate/node_modules/codemirror-hashare/package.json +37 -0
  1260. data/vendor/node_modules/wisp/interactivate/node_modules/codemirror-persist/License.md +18 -0
  1261. data/vendor/node_modules/wisp/interactivate/node_modules/codemirror-persist/Readme.md +22 -0
  1262. data/vendor/node_modules/wisp/interactivate/node_modules/codemirror-persist/core.js +25 -0
  1263. data/vendor/node_modules/wisp/interactivate/node_modules/codemirror-persist/package.json +34 -0
  1264. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/History.md +47 -0
  1265. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/License.md +18 -0
  1266. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/Readme.md +11 -0
  1267. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/Readme.md +24 -0
  1268. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/build/cache.manifest +12 -0
  1269. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/build/codemirror-compressed.js +4 -0
  1270. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/build/codemirror.css +248 -0
  1271. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/build/main.js +267 -0
  1272. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/build/solarized.css +207 -0
  1273. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/index.html +115 -0
  1274. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/main.js +39 -0
  1275. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-activine/License.md +18 -0
  1276. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-activine/Readme.md +22 -0
  1277. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-activine/core.js +33 -0
  1278. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-activine/package.json +36 -0
  1279. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-hashare/License.md +18 -0
  1280. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-hashare/Readme.md +23 -0
  1281. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-hashare/core.js +31 -0
  1282. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-hashare/package.json +37 -0
  1283. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-persist/License.md +18 -0
  1284. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-persist/Readme.md +22 -0
  1285. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-persist/core.js +25 -0
  1286. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-persist/package.json +34 -0
  1287. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/demo/package.json +21 -0
  1288. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/host/window.js +19 -0
  1289. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/interactivate.js +187 -0
  1290. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/History.md +10 -0
  1291. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/License.md +18 -0
  1292. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/Readme.md +68 -0
  1293. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/diff.js +45 -0
  1294. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/index.js +5 -0
  1295. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/package.json +53 -0
  1296. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/patch.js +21 -0
  1297. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/rebase.js +33 -0
  1298. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/test/diff.js +62 -0
  1299. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/test/index.js +16 -0
  1300. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/test/patch.js +54 -0
  1301. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/History.md +15 -0
  1302. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/License.md +18 -0
  1303. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/Readme.md +54 -0
  1304. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/event.js +39 -0
  1305. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/index.js +3 -0
  1306. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/History.md +20 -0
  1307. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/License.md +18 -0
  1308. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/Readme.md +45 -0
  1309. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/end.js +3 -0
  1310. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/index.js +8 -0
  1311. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/is-error.js +9 -0
  1312. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/is-reduced.js +9 -0
  1313. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/package.json +57 -0
  1314. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/reduce.js +59 -0
  1315. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/reduced.js +15 -0
  1316. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/reducible.js +87 -0
  1317. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/test/index.js +6 -0
  1318. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/test/reduce.js +116 -0
  1319. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/test/reducible.js +106 -0
  1320. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/package.json +56 -0
  1321. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/test/index.js +91 -0
  1322. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/method/History.md +60 -0
  1323. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/method/License.md +18 -0
  1324. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/method/Readme.md +125 -0
  1325. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/method/core.js +227 -0
  1326. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/method/package.json +93 -0
  1327. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/method/test/browser.js +18 -0
  1328. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/method/test/common-index.js +3 -0
  1329. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/method/test/common.js +270 -0
  1330. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/method/test/index.js +3 -0
  1331. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/method/test/phantom-index.js +3 -0
  1332. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/method/test/tap-index.js +3 -0
  1333. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/method/test/testling-index.js +3 -0
  1334. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/History.md +139 -0
  1335. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/License.md +19 -0
  1336. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/Readme.md +253 -0
  1337. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/capture.js +34 -0
  1338. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/concat.js +37 -0
  1339. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/debug/print.js +45 -0
  1340. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/delay.js +29 -0
  1341. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/drop-while.js +39 -0
  1342. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/drop.js +40 -0
  1343. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/expand.js +25 -0
  1344. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/filter.js +21 -0
  1345. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/fold.js +55 -0
  1346. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/hub.js +102 -0
  1347. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/index.js +33 -0
  1348. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/into.js +16 -0
  1349. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/map.js +19 -0
  1350. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/merge.js +50 -0
  1351. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/History.md +20 -0
  1352. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/License.md +18 -0
  1353. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/Readme.md +45 -0
  1354. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/end.js +3 -0
  1355. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/index.js +8 -0
  1356. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/is-error.js +9 -0
  1357. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/is-reduced.js +9 -0
  1358. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/package.json +57 -0
  1359. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/reduce.js +59 -0
  1360. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/reduced.js +15 -0
  1361. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/reducible.js +87 -0
  1362. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/test/index.js +6 -0
  1363. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/test/reduce.js +116 -0
  1364. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/test/reducible.js +106 -0
  1365. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/package.json +60 -0
  1366. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/reducer.js +51 -0
  1367. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/reductions.js +31 -0
  1368. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/take-while.js +23 -0
  1369. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/take.js +40 -0
  1370. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/benchmark.js +32 -0
  1371. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/capture.js +108 -0
  1372. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/concat.js +104 -0
  1373. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/delay.js +29 -0
  1374. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/drop-while.js +118 -0
  1375. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/drop.js +89 -0
  1376. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/errors.js +222 -0
  1377. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/filter.js +72 -0
  1378. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/fold.js +111 -0
  1379. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/hub.js +222 -0
  1380. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/index.js +23 -0
  1381. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/into.js +22 -0
  1382. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/map.js +67 -0
  1383. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/merge.js +75 -0
  1384. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/reductions.js +105 -0
  1385. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/take-while.js +134 -0
  1386. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/take.js +82 -0
  1387. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/util/event.js +25 -0
  1388. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/util/lazy.js +9 -0
  1389. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/util/test.js +34 -0
  1390. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/output.js +60 -0
  1391. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/package.json +30 -0
  1392. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/render.js +23 -0
  1393. data/vendor/node_modules/wisp/interactivate/node_modules/interactivate/view.js +79 -0
  1394. data/vendor/node_modules/wisp/interactivate/package.json +22 -0
  1395. data/vendor/node_modules/wisp/package.json +61 -0
  1396. data/vendor/node_modules/wisp/reader.js +785 -0
  1397. data/vendor/node_modules/wisp/repl.js +121 -0
  1398. data/vendor/node_modules/wisp/runtime.js +609 -0
  1399. data/vendor/node_modules/wisp/sequence.js +553 -0
  1400. data/vendor/node_modules/wisp/src/ast.wisp +160 -0
  1401. data/vendor/node_modules/wisp/src/backend/javascript/writer.wisp +161 -0
  1402. data/vendor/node_modules/wisp/src/backend/js/generator.wisp +939 -0
  1403. data/vendor/node_modules/wisp/src/compiler.wisp +1185 -0
  1404. data/vendor/node_modules/wisp/src/drafts.wisp +50 -0
  1405. data/vendor/node_modules/wisp/src/drft.wisp +329 -0
  1406. data/vendor/node_modules/wisp/src/engine/browser.wisp +73 -0
  1407. data/vendor/node_modules/wisp/src/engine/node.wisp +23 -0
  1408. data/vendor/node_modules/wisp/src/extra.wisp +36 -0
  1409. data/vendor/node_modules/wisp/src/reader.wisp +615 -0
  1410. data/vendor/node_modules/wisp/src/repl.wisp +79 -0
  1411. data/vendor/node_modules/wisp/src/runtime.wisp +511 -0
  1412. data/vendor/node_modules/wisp/src/sequence.wisp +416 -0
  1413. data/vendor/node_modules/wisp/src/string.wisp +110 -0
  1414. data/vendor/node_modules/wisp/src/type.wisp +51 -0
  1415. data/vendor/node_modules/wisp/src/wisp.wisp +57 -0
  1416. data/vendor/node_modules/wisp/string.js +96 -0
  1417. data/vendor/node_modules/wisp/support/ambiance.css +119 -0
  1418. data/vendor/node_modules/wisp/support/app.js +3669 -0
  1419. data/vendor/node_modules/wisp/support/codemirror-compressed.js +1 -0
  1420. data/vendor/node_modules/wisp/support/codemirror.css +173 -0
  1421. data/vendor/node_modules/wisp/support/embed.js +71 -0
  1422. data/vendor/node_modules/wisp/support/embed.wisp +74 -0
  1423. data/vendor/node_modules/wisp/support/require.js +35 -0
  1424. data/vendor/node_modules/wisp/test/ast.wisp +58 -0
  1425. data/vendor/node_modules/wisp/test/compiler.wisp +549 -0
  1426. data/vendor/node_modules/wisp/test/reader.wisp +228 -0
  1427. data/vendor/node_modules/wisp/test/runtime.wisp +180 -0
  1428. data/vendor/node_modules/wisp/test/sequence.wisp +338 -0
  1429. data/vendor/node_modules/wisp/test/string.wisp +44 -0
  1430. data/vendor/node_modules/wisp/test/test.wisp +8 -0
  1431. data/vendor/node_modules/wisp/wisp.js +60 -0
  1432. data/vendor/package.json +39 -0
  1433. data/vendor/reader.js +784 -0
  1434. data/vendor/repl.js +116 -0
  1435. data/vendor/runtime.js +613 -0
  1436. data/vendor/sequence.js +555 -0
  1437. data/vendor/src/ast.wisp +162 -0
  1438. data/vendor/src/backend/escodegen/writer.wisp +939 -0
  1439. data/vendor/src/backend/javascript/writer.wisp +164 -0
  1440. data/vendor/src/compiler.wisp +1191 -0
  1441. data/vendor/src/drafts/drafts.wisp +50 -0
  1442. data/vendor/src/drafts/drft.wisp +329 -0
  1443. data/vendor/src/drafts/extra.wisp +36 -0
  1444. data/vendor/src/engine/browser.wisp +67 -0
  1445. data/vendor/src/engine/node.wisp +16 -0
  1446. data/vendor/src/functional-reader.wisp +96 -0
  1447. data/vendor/src/reader.wisp +619 -0
  1448. data/vendor/src/repl.wisp +80 -0
  1449. data/vendor/src/runtime.wisp +512 -0
  1450. data/vendor/src/sequence.wisp +417 -0
  1451. data/vendor/src/string.wisp +111 -0
  1452. data/vendor/src/type.wisp +54 -0
  1453. data/vendor/src/wisp.wisp +58 -0
  1454. data/vendor/string.js +97 -0
  1455. data/vendor/test/ast.wisp +60 -0
  1456. data/vendor/test/compiler.wisp +552 -0
  1457. data/vendor/test/reader.wisp +228 -0
  1458. data/vendor/test/runtime.wisp +180 -0
  1459. data/vendor/test/sequence.wisp +337 -0
  1460. data/vendor/test/string.wisp +45 -0
  1461. data/vendor/test/test.wisp +9 -0
  1462. data/vendor/try/Makefile +27 -0
  1463. data/vendor/try/Readme.md +25 -0
  1464. data/vendor/try/build/codemirror-compressed.js +4 -0
  1465. data/vendor/try/build/codemirror.css +248 -0
  1466. data/vendor/try/build/main.js +3742 -0
  1467. data/vendor/try/build/require.js +35 -0
  1468. data/vendor/try/build/solarized.css +203 -0
  1469. data/vendor/try/index.html +399 -0
  1470. data/vendor/try/node_modules/codemirror-activine/License.md +18 -0
  1471. data/vendor/try/node_modules/codemirror-activine/Readme.md +22 -0
  1472. data/vendor/try/node_modules/codemirror-activine/core.js +33 -0
  1473. data/vendor/try/node_modules/codemirror-activine/package.json +36 -0
  1474. data/vendor/try/node_modules/codemirror-persist/License.md +18 -0
  1475. data/vendor/try/node_modules/codemirror-persist/Readme.md +22 -0
  1476. data/vendor/try/node_modules/codemirror-persist/core.js +25 -0
  1477. data/vendor/try/node_modules/codemirror-persist/package.json +34 -0
  1478. data/vendor/try/node_modules/~wisp/History.md +152 -0
  1479. data/vendor/try/node_modules/~wisp/LICENSE +24 -0
  1480. data/vendor/try/node_modules/~wisp/Makefile +80 -0
  1481. data/vendor/try/node_modules/~wisp/Readme.md +615 -0
  1482. data/vendor/try/node_modules/~wisp/analyzer.js +385 -0
  1483. data/vendor/try/node_modules/~wisp/ast.js +214 -0
  1484. data/vendor/try/node_modules/~wisp/backend/javascript/writer.js +212 -0
  1485. data/vendor/try/node_modules/~wisp/bin/wisp.js +2 -0
  1486. data/vendor/try/node_modules/~wisp/compiler.js +1028 -0
  1487. data/vendor/try/node_modules/~wisp/design.md +114 -0
  1488. data/vendor/try/node_modules/~wisp/engine/browser.js +65 -0
  1489. data/vendor/try/node_modules/~wisp/engine/node.js +20 -0
  1490. data/vendor/try/node_modules/~wisp/index.html +405 -0
  1491. data/vendor/try/node_modules/~wisp/interactivate/Makefile +38 -0
  1492. data/vendor/try/node_modules/~wisp/interactivate/Readme.md +24 -0
  1493. data/vendor/try/node_modules/~wisp/interactivate/build/cache.manifest +12 -0
  1494. data/vendor/try/node_modules/~wisp/interactivate/build/codemirror-compressed.js +4 -0
  1495. data/vendor/try/node_modules/~wisp/interactivate/build/codemirror.css +248 -0
  1496. data/vendor/try/node_modules/~wisp/interactivate/build/main.js +5430 -0
  1497. data/vendor/try/node_modules/~wisp/interactivate/build/solarized.css +207 -0
  1498. data/vendor/try/node_modules/~wisp/interactivate/host.wisp +83 -0
  1499. data/vendor/try/node_modules/~wisp/interactivate/index.html +392 -0
  1500. data/vendor/try/node_modules/~wisp/interactivate/main.wisp +37 -0
  1501. data/vendor/try/node_modules/~wisp/interactivate/node_modules/codemirror-activine/License.md +18 -0
  1502. data/vendor/try/node_modules/~wisp/interactivate/node_modules/codemirror-activine/Readme.md +22 -0
  1503. data/vendor/try/node_modules/~wisp/interactivate/node_modules/codemirror-activine/core.js +33 -0
  1504. data/vendor/try/node_modules/~wisp/interactivate/node_modules/codemirror-activine/package.json +36 -0
  1505. data/vendor/try/node_modules/~wisp/interactivate/node_modules/codemirror-hashare/License.md +18 -0
  1506. data/vendor/try/node_modules/~wisp/interactivate/node_modules/codemirror-hashare/Readme.md +23 -0
  1507. data/vendor/try/node_modules/~wisp/interactivate/node_modules/codemirror-hashare/core.js +31 -0
  1508. data/vendor/try/node_modules/~wisp/interactivate/node_modules/codemirror-hashare/package.json +37 -0
  1509. data/vendor/try/node_modules/~wisp/interactivate/node_modules/codemirror-persist/License.md +18 -0
  1510. data/vendor/try/node_modules/~wisp/interactivate/node_modules/codemirror-persist/Readme.md +22 -0
  1511. data/vendor/try/node_modules/~wisp/interactivate/node_modules/codemirror-persist/core.js +25 -0
  1512. data/vendor/try/node_modules/~wisp/interactivate/node_modules/codemirror-persist/package.json +34 -0
  1513. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/History.md +47 -0
  1514. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/License.md +18 -0
  1515. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/Readme.md +11 -0
  1516. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/Readme.md +24 -0
  1517. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/build/cache.manifest +12 -0
  1518. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/build/codemirror-compressed.js +4 -0
  1519. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/build/codemirror.css +248 -0
  1520. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/build/main.js +267 -0
  1521. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/build/solarized.css +207 -0
  1522. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/index.html +115 -0
  1523. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/main.js +39 -0
  1524. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-activine/License.md +18 -0
  1525. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-activine/Readme.md +22 -0
  1526. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-activine/core.js +33 -0
  1527. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-activine/package.json +36 -0
  1528. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-hashare/License.md +18 -0
  1529. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-hashare/Readme.md +23 -0
  1530. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-hashare/core.js +31 -0
  1531. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-hashare/package.json +37 -0
  1532. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-persist/License.md +18 -0
  1533. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-persist/Readme.md +22 -0
  1534. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-persist/core.js +25 -0
  1535. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/node_modules/codemirror-persist/package.json +34 -0
  1536. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/demo/package.json +21 -0
  1537. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/host/window.js +19 -0
  1538. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/interactivate.js +187 -0
  1539. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/History.md +10 -0
  1540. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/License.md +18 -0
  1541. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/Readme.md +68 -0
  1542. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/diff.js +45 -0
  1543. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/index.js +5 -0
  1544. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/package.json +53 -0
  1545. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/patch.js +21 -0
  1546. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/rebase.js +33 -0
  1547. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/test/diff.js +62 -0
  1548. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/test/index.js +16 -0
  1549. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/diffpatcher/test/patch.js +54 -0
  1550. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/History.md +15 -0
  1551. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/License.md +18 -0
  1552. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/Readme.md +54 -0
  1553. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/event.js +39 -0
  1554. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/index.js +3 -0
  1555. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/History.md +20 -0
  1556. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/License.md +18 -0
  1557. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/Readme.md +45 -0
  1558. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/end.js +3 -0
  1559. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/index.js +8 -0
  1560. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/is-error.js +9 -0
  1561. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/is-reduced.js +9 -0
  1562. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/package.json +57 -0
  1563. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/reduce.js +59 -0
  1564. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/reduced.js +15 -0
  1565. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/reducible.js +87 -0
  1566. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/test/index.js +6 -0
  1567. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/test/reduce.js +116 -0
  1568. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/node_modules/reducible/test/reducible.js +106 -0
  1569. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/package.json +56 -0
  1570. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/dom-reduce/test/index.js +91 -0
  1571. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/method/History.md +60 -0
  1572. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/method/License.md +18 -0
  1573. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/method/Readme.md +125 -0
  1574. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/method/core.js +227 -0
  1575. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/method/package.json +93 -0
  1576. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/method/test/browser.js +18 -0
  1577. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/method/test/common-index.js +3 -0
  1578. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/method/test/common.js +270 -0
  1579. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/method/test/index.js +3 -0
  1580. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/method/test/phantom-index.js +3 -0
  1581. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/method/test/tap-index.js +3 -0
  1582. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/method/test/testling-index.js +3 -0
  1583. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/History.md +139 -0
  1584. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/License.md +19 -0
  1585. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/Readme.md +253 -0
  1586. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/capture.js +34 -0
  1587. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/concat.js +37 -0
  1588. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/debug/print.js +45 -0
  1589. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/delay.js +29 -0
  1590. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/drop-while.js +39 -0
  1591. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/drop.js +40 -0
  1592. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/expand.js +25 -0
  1593. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/filter.js +21 -0
  1594. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/fold.js +55 -0
  1595. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/hub.js +102 -0
  1596. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/index.js +33 -0
  1597. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/into.js +16 -0
  1598. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/map.js +19 -0
  1599. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/merge.js +50 -0
  1600. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/History.md +20 -0
  1601. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/License.md +18 -0
  1602. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/Readme.md +45 -0
  1603. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/end.js +3 -0
  1604. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/index.js +8 -0
  1605. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/is-error.js +9 -0
  1606. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/is-reduced.js +9 -0
  1607. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/package.json +57 -0
  1608. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/reduce.js +59 -0
  1609. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/reduced.js +15 -0
  1610. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/reducible.js +87 -0
  1611. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/test/index.js +6 -0
  1612. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/test/reduce.js +116 -0
  1613. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/node_modules/reducible/test/reducible.js +106 -0
  1614. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/package.json +60 -0
  1615. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/reducer.js +51 -0
  1616. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/reductions.js +31 -0
  1617. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/take-while.js +23 -0
  1618. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/take.js +40 -0
  1619. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/benchmark.js +32 -0
  1620. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/capture.js +108 -0
  1621. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/concat.js +104 -0
  1622. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/delay.js +29 -0
  1623. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/drop-while.js +118 -0
  1624. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/drop.js +89 -0
  1625. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/errors.js +222 -0
  1626. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/filter.js +72 -0
  1627. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/fold.js +111 -0
  1628. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/hub.js +222 -0
  1629. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/index.js +23 -0
  1630. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/into.js +22 -0
  1631. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/map.js +67 -0
  1632. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/merge.js +75 -0
  1633. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/reductions.js +105 -0
  1634. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/take-while.js +134 -0
  1635. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/take.js +82 -0
  1636. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/util/event.js +25 -0
  1637. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/util/lazy.js +9 -0
  1638. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/node_modules/reducers/test/util/test.js +34 -0
  1639. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/output.js +60 -0
  1640. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/package.json +30 -0
  1641. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/render.js +23 -0
  1642. data/vendor/try/node_modules/~wisp/interactivate/node_modules/interactivate/view.js +79 -0
  1643. data/vendor/try/node_modules/~wisp/interactivate/package.json +22 -0
  1644. data/vendor/try/node_modules/~wisp/package.json +57 -0
  1645. data/vendor/try/node_modules/~wisp/reader.js +785 -0
  1646. data/vendor/try/node_modules/~wisp/repl.js +121 -0
  1647. data/vendor/try/node_modules/~wisp/runtime.js +609 -0
  1648. data/vendor/try/node_modules/~wisp/sequence.js +553 -0
  1649. data/vendor/try/node_modules/~wisp/src/ast.wisp +160 -0
  1650. data/vendor/try/node_modules/~wisp/src/backend/javascript/writer.wisp +161 -0
  1651. data/vendor/try/node_modules/~wisp/src/backend/js/generator.wisp +939 -0
  1652. data/vendor/try/node_modules/~wisp/src/compiler.wisp +1185 -0
  1653. data/vendor/try/node_modules/~wisp/src/drafts.wisp +50 -0
  1654. data/vendor/try/node_modules/~wisp/src/drft.wisp +329 -0
  1655. data/vendor/try/node_modules/~wisp/src/engine/browser.wisp +73 -0
  1656. data/vendor/try/node_modules/~wisp/src/engine/node.wisp +23 -0
  1657. data/vendor/try/node_modules/~wisp/src/extra.wisp +36 -0
  1658. data/vendor/try/node_modules/~wisp/src/reader.wisp +615 -0
  1659. data/vendor/try/node_modules/~wisp/src/repl.wisp +79 -0
  1660. data/vendor/try/node_modules/~wisp/src/runtime.wisp +511 -0
  1661. data/vendor/try/node_modules/~wisp/src/sequence.wisp +416 -0
  1662. data/vendor/try/node_modules/~wisp/src/string.wisp +110 -0
  1663. data/vendor/try/node_modules/~wisp/src/type.wisp +51 -0
  1664. data/vendor/try/node_modules/~wisp/src/wisp.wisp +57 -0
  1665. data/vendor/try/node_modules/~wisp/string.js +96 -0
  1666. data/vendor/try/node_modules/~wisp/support/ambiance.css +119 -0
  1667. data/vendor/try/node_modules/~wisp/support/app.js +3669 -0
  1668. data/vendor/try/node_modules/~wisp/support/codemirror-compressed.js +1 -0
  1669. data/vendor/try/node_modules/~wisp/support/codemirror.css +173 -0
  1670. data/vendor/try/node_modules/~wisp/support/embed.js +71 -0
  1671. data/vendor/try/node_modules/~wisp/support/embed.wisp +74 -0
  1672. data/vendor/try/node_modules/~wisp/support/require.js +35 -0
  1673. data/vendor/try/node_modules/~wisp/test/ast.wisp +58 -0
  1674. data/vendor/try/node_modules/~wisp/test/compiler.wisp +549 -0
  1675. data/vendor/try/node_modules/~wisp/test/reader.wisp +228 -0
  1676. data/vendor/try/node_modules/~wisp/test/runtime.wisp +180 -0
  1677. data/vendor/try/node_modules/~wisp/test/sequence.wisp +338 -0
  1678. data/vendor/try/node_modules/~wisp/test/string.wisp +44 -0
  1679. data/vendor/try/node_modules/~wisp/test/test.wisp +8 -0
  1680. data/vendor/try/node_modules/~wisp/wisp.js +60 -0
  1681. data/vendor/try/package.json +19 -0
  1682. data/vendor/try/src/main.wisp +89 -0
  1683. data/vendor/wisp.js +55 -0
  1684. metadata +1727 -0
@@ -0,0 +1,3261 @@
1
+ /*!
2
+ * Benchmark.js <http://benchmarkjs.com/>
3
+ * Copyright 2010-2011 Mathias Bynens <http://mths.be/>
4
+ * Based on JSLitmus.js, copyright Robert Kieffer <http://broofa.com/>
5
+ * Modified by John-David Dalton <http://allyoucanleet.com/>
6
+ * Available under MIT license <http://mths.be/mit>
7
+ */
8
+ ;(function(window, undefined) {
9
+
10
+ /** Detect free variable `define` */
11
+ var freeDefine = typeof define == 'function' &&
12
+ typeof define.amd == 'object' && define.amd && define,
13
+
14
+ /** Detect free variable `exports` */
15
+ freeExports = typeof exports == 'object' && exports &&
16
+ (typeof global == 'object' && global && global == global.global && (window = global), exports),
17
+
18
+ /** Detect free variable `require` */
19
+ freeRequire = typeof require == 'function' && require,
20
+
21
+ /** Used to assign each benchmark an incrimented id */
22
+ counter = 0,
23
+
24
+ /** Used to crawl all properties regardless of enumerability */
25
+ getAllKeys = Object.getOwnPropertyNames,
26
+
27
+ /** Used to get property descriptors */
28
+ getDescriptor = Object.getOwnPropertyDescriptor,
29
+
30
+ /** Used in case an object doesn't have its own method */
31
+ hasOwnProperty = {}.hasOwnProperty,
32
+
33
+ /** Used to check if an object is extensible */
34
+ isExtensible = Object.isExtensible || function() { return true; },
35
+
36
+ /** Used to check if an own property is enumerable */
37
+ propertyIsEnumerable = {}.propertyIsEnumerable,
38
+
39
+ /** Used to set property descriptors */
40
+ setDescriptor = Object.defineProperty,
41
+
42
+ /** Used to resolve a value's internal [[Class]] */
43
+ toString = {}.toString,
44
+
45
+ /** Used to integrity check compiled tests */
46
+ uid = 'uid' + (+new Date),
47
+
48
+ /** Used to avoid infinite recursion when methods call each other */
49
+ calledBy = {},
50
+
51
+ /** Used to avoid hz of Infinity */
52
+ divisors = {
53
+ '1': 4096,
54
+ '2': 512,
55
+ '3': 64,
56
+ '4': 8,
57
+ '5': 0
58
+ },
59
+
60
+ /**
61
+ * T-Distribution two-tailed critical values for 95% confidence
62
+ * http://www.itl.nist.gov/div898/handbook/eda/section3/eda3672.htm
63
+ */
64
+ distribution = {
65
+ '1': 12.706,'2': 4.303, '3': 3.182, '4': 2.776, '5': 2.571, '6': 2.447,
66
+ '7': 2.365, '8': 2.306, '9': 2.262, '10': 2.228, '11': 2.201, '12': 2.179,
67
+ '13': 2.16, '14': 2.145, '15': 2.131, '16': 2.12, '17': 2.11, '18': 2.101,
68
+ '19': 2.093, '20': 2.086, '21': 2.08, '22': 2.074, '23': 2.069, '24': 2.064,
69
+ '25': 2.06, '26': 2.056, '27': 2.052, '28': 2.048, '29': 2.045, '30': 2.042,
70
+ 'infinity': 1.96
71
+ },
72
+
73
+ /** Used to flag environments/features */
74
+ has = {
75
+
76
+ /** Detect Adobe AIR */
77
+ 'air': isClassOf(window.runtime, 'ScriptBridgingProxyObject'),
78
+
79
+ /** Detect if `arguments` objects have the correct internal [[Class]] value */
80
+ 'argumentsClass': isClassOf(arguments, 'Arguments'),
81
+
82
+ /** Detect if strings support accessing characters by index */
83
+ 'charByIndex':
84
+ // IE8 supports indexes on string literals but not string objects
85
+ Object('x')[0] == 'x',
86
+
87
+ /** Detect if strings have indexes as own properties */
88
+ 'charByOwnIndex':
89
+ // Narwhal, Rhino, RingoJS, and Opera < 10.52 support indexes on strings
90
+ // but don't detect them as own properties
91
+ hasKey('x', '0'),
92
+
93
+ /** Detect if functions support decompilation */
94
+ 'decompilation': !!(function() {
95
+ try{
96
+ // Safari 2.x removes commas in object literals
97
+ // from Function#toString results
98
+ // http://webk.it/11609
99
+ // Firefox 3.6 and Opera 9.25 strip grouping
100
+ // parentheses from Function#toString results
101
+ // http://bugzil.la/559438
102
+ return Function(
103
+ 'return (' + (function(x) { return { 'x': '' + (1 + x) + '', 'y': 0 }; }) + ')'
104
+ )()(0).x === '1';
105
+ } catch(e) { }
106
+ }()),
107
+
108
+ /** Detect ES5+ property descriptor API */
109
+ 'descriptors' : !!(function() {
110
+ try {
111
+ var o = {};
112
+ return (setDescriptor(o, o, o), 'value' in getDescriptor(o, o));
113
+ } catch(e) { }
114
+ }()),
115
+
116
+ /** Detect ES5+ Object.getOwnPropertyNames() */
117
+ 'getAllKeys': !!(function() {
118
+ try {
119
+ return /\bvalueOf\b/.test(getAllKeys(Object.prototype));
120
+ } catch(e) { }
121
+ }()),
122
+
123
+ /** Detect if Java is enabled/exposed */
124
+ 'java': isClassOf(window.java, 'JavaPackage'),
125
+
126
+ /** Detect if the Timers API exists */
127
+ 'timeout': isHostType(window, 'setTimeout') && isHostType(window, 'clearTimeout')
128
+ },
129
+
130
+ /**
131
+ * Timer utility object used by `clock()` and `Deferred#resolve`.
132
+ * @private
133
+ * @type Object
134
+ */
135
+ timer = {
136
+
137
+ /**
138
+ * The timer namespace object or constructor.
139
+ * @private
140
+ * @memberOf timer
141
+ * @type Function|Object
142
+ */
143
+ 'ns': Date,
144
+
145
+ /**
146
+ * Starts the deferred timer.
147
+ * @private
148
+ * @memberOf timer
149
+ * @param {Object} deferred The deferred instance.
150
+ */
151
+ 'start': null, // lazy defined in `clock()`
152
+
153
+ /**
154
+ * Stops the deferred timer.
155
+ * @private
156
+ * @memberOf timer
157
+ * @param {Object} deferred The deferred instance.
158
+ */
159
+ 'stop': null // lazy defined in `clock()`
160
+ },
161
+
162
+ /** Shortcut for inverse results */
163
+ noArgumentsClass = !has.argumentsClass,
164
+ noCharByIndex = !has.charByIndex,
165
+ noCharByOwnIndex = !has.charByOwnIndex,
166
+
167
+ /** Math shortcuts */
168
+ abs = Math.abs,
169
+ floor = Math.floor,
170
+ max = Math.max,
171
+ min = Math.min,
172
+ pow = Math.pow,
173
+ sqrt = Math.sqrt;
174
+
175
+ /*--------------------------------------------------------------------------*/
176
+
177
+ /**
178
+ * Benchmark constructor.
179
+ * @constructor
180
+ * @param {String} name A name to identify the benchmark.
181
+ * @param {Function|String} fn The test to benchmark.
182
+ * @param {Object} [options={}] Options object.
183
+ * @example
184
+ *
185
+ * // basic usage (the `new` operator is optional)
186
+ * var bench = new Benchmark(fn);
187
+ *
188
+ * // or using a name first
189
+ * var bench = new Benchmark('foo', fn);
190
+ *
191
+ * // or with options
192
+ * var bench = new Benchmark('foo', fn, {
193
+ *
194
+ * // displayed by Benchmark#toString if `name` is not available
195
+ * 'id': 'xyz',
196
+ *
197
+ * // called when the benchmark starts running
198
+ * 'onStart': onStart,
199
+ *
200
+ * // called after each run cycle
201
+ * 'onCycle': onCycle,
202
+ *
203
+ * // called when aborted
204
+ * 'onAbort': onAbort,
205
+ *
206
+ * // called when a test errors
207
+ * 'onError': onError,
208
+ *
209
+ * // called when reset
210
+ * 'onReset': onReset,
211
+ *
212
+ * // called when the benchmark completes running
213
+ * 'onComplete': onComplete,
214
+ *
215
+ * // compiled/called before the test loop
216
+ * 'setup': setup,
217
+ *
218
+ * // compiled/called after the test loop
219
+ * 'teardown': teardown
220
+ * });
221
+ *
222
+ * // or name and options
223
+ * var bench = new Benchmark('foo', {
224
+ *
225
+ * // a flag to indicate the benchmark is deferred
226
+ * 'deferred': true,
227
+ *
228
+ * // benchmark test function
229
+ * 'fn': function(deferred) {
230
+ * // call resolve() when the deferred test is finished
231
+ * deferred.resolve();
232
+ * }
233
+ * });
234
+ *
235
+ * // or options only
236
+ * var bench = new Benchmark({
237
+ *
238
+ * // benchmark name
239
+ * 'name': 'foo',
240
+ *
241
+ * // benchmark test as a string
242
+ * 'fn': '[1,2,3,4].sort()'
243
+ * });
244
+ *
245
+ * // a test's `this` binding is set to the benchmark instance
246
+ * var bench = new Benchmark('foo', function() {
247
+ * 'My name is '.concat(this.name); // My name is foo
248
+ * });
249
+ */
250
+ function Benchmark(name, fn, options) {
251
+ var me = this;
252
+
253
+ // allow instance creation without the `new` operator
254
+ if (me && me.constructor != Benchmark) {
255
+ return new Benchmark(name, fn, options);
256
+ }
257
+ // juggle arguments
258
+ if (isClassOf(name, 'Object')) {
259
+ // 1 argument (options)
260
+ options = name;
261
+ }
262
+ else if (isClassOf(name, 'Function')) {
263
+ // 2 arguments (fn, options)
264
+ options = fn;
265
+ fn = name;
266
+ }
267
+ else if (isClassOf(fn, 'Object')) {
268
+ // 2 arguments (name, options)
269
+ options = fn;
270
+ fn = null;
271
+ me.name = name;
272
+ }
273
+ else {
274
+ // 3 arguments (name, fn [, options])
275
+ me.name = name;
276
+ }
277
+ setOptions(me, options);
278
+ me.id || (me.id = ++counter);
279
+ me.fn == null && (me.fn = fn);
280
+ me.stats = extend({}, me.stats);
281
+ me.times = extend({}, me.times);
282
+ }
283
+
284
+ /**
285
+ * Deferred constructor.
286
+ * @constructor
287
+ * @memberOf Benchmark
288
+ * @param {Object} bench The benchmark instance.
289
+ */
290
+ function Deferred(bench) {
291
+ var me = this;
292
+ if (me && me.constructor != Deferred) {
293
+ return new Deferred(bench);
294
+ }
295
+ me.benchmark = bench;
296
+ clock(me);
297
+ }
298
+
299
+ /**
300
+ * Event constructor.
301
+ * @constructor
302
+ * @memberOf Benchmark
303
+ * @param {String|Object} type The event type.
304
+ */
305
+ function Event(type) {
306
+ var me = this;
307
+ return (me && me.constructor != Event)
308
+ ? new Event(type)
309
+ : (type instanceof Event)
310
+ ? type
311
+ : extend(me, typeof type == 'string' ? { 'type': type } : type);
312
+ }
313
+
314
+ /**
315
+ * Suite constructor.
316
+ * @constructor
317
+ * @memberOf Benchmark
318
+ * @param {String} name A name to identify the suite.
319
+ * @param {Object} [options={}] Options object.
320
+ * @example
321
+ *
322
+ * // basic usage (the `new` operator is optional)
323
+ * var suite = new Benchmark.Suite;
324
+ *
325
+ * // or using a name first
326
+ * var suite = new Benchmark.Suite('foo');
327
+ *
328
+ * // or with options
329
+ * var suite = new Benchmark.Suite('foo', {
330
+ *
331
+ * // called when the suite starts running
332
+ * 'onStart': onStart,
333
+ *
334
+ * // called between running benchmarks
335
+ * 'onCycle': onCycle,
336
+ *
337
+ * // called when aborted
338
+ * 'onAbort': onAbort,
339
+ *
340
+ * // called when a test errors
341
+ * 'onError': onError,
342
+ *
343
+ * // called when reset
344
+ * 'onReset': onReset,
345
+ *
346
+ * // called when the suite completes running
347
+ * 'onComplete': onComplete
348
+ * });
349
+ */
350
+ function Suite(name, options) {
351
+ var me = this;
352
+
353
+ // allow instance creation without the `new` operator
354
+ if (me && me.constructor != Suite) {
355
+ return new Suite(name, options);
356
+ }
357
+ // juggle arguments
358
+ if (isClassOf(name, 'Object')) {
359
+ // 1 argument (options)
360
+ options = name;
361
+ } else {
362
+ // 2 arguments (name [, options])
363
+ me.name = name;
364
+ }
365
+ setOptions(me, options);
366
+ }
367
+
368
+ /*--------------------------------------------------------------------------*/
369
+
370
+ /**
371
+ * Note: Some array methods have been implemented in plain JavaScript to avoid
372
+ * bugs in IE, Opera, Rhino, and Mobile Safari.
373
+ *
374
+ * IE compatibility mode and IE < 9 have buggy Array `shift()` and `splice()`
375
+ * functions that fail to remove the last element, `object[0]`, of
376
+ * array-like-objects even though the `length` property is set to `0`.
377
+ * The `shift()` method is buggy in IE 8 compatibility mode, while `splice()`
378
+ * is buggy regardless of mode in IE < 9 and buggy in compatibility mode in IE 9.
379
+ *
380
+ * In Opera < 9.50 and some older/beta Mobile Safari versions using `unshift()`
381
+ * generically to augment the `arguments` object will pave the value at index 0
382
+ * without incrimenting the other values's indexes.
383
+ * https://github.com/documentcloud/underscore/issues/9
384
+ *
385
+ * Rhino and environments it powers, like Narwhal and RingoJS, may have
386
+ * buggy Array `concat()`, `reverse()`, `shift()`, `slice()`, `splice()` and
387
+ * `unshift()` functions that make sparse arrays non-sparse by assigning the
388
+ * undefined indexes a value of undefined.
389
+ * https://github.com/mozilla/rhino/commit/702abfed3f8ca043b2636efd31c14ba7552603dd
390
+ */
391
+
392
+ /**
393
+ * Creates an array containing the elements of the host array followed by the
394
+ * elements of each argument in order.
395
+ * @memberOf Benchmark.Suite
396
+ * @returns {Array} The new array.
397
+ */
398
+ function concat() {
399
+ var value,
400
+ j = -1,
401
+ length = arguments.length,
402
+ result = slice.call(this),
403
+ index = result.length;
404
+
405
+ while (++j < length) {
406
+ value = arguments[j];
407
+ if (isClassOf(value, 'Array')) {
408
+ for (var k = 0, l = value.length; k < l; k++, index++) {
409
+ if (k in value) {
410
+ result[index] = value[k];
411
+ }
412
+ }
413
+ } else {
414
+ result[index] = value;
415
+ }
416
+ }
417
+ return result;
418
+ }
419
+
420
+ /**
421
+ * Utility function used by `shift()`, `splice()`, and `unshift()`.
422
+ * @private
423
+ * @param {Number} start The index to start inserting elements.
424
+ * @param {Number} deleteCount The number of elements to delete from the insert point.
425
+ * @param {Array} elements The elements to insert.
426
+ * @returns {Array} An array of deleted elements.
427
+ */
428
+ function insert(start, deleteCount, elements) {
429
+ var deleteEnd = start + deleteCount,
430
+ elementCount = elements ? elements.length : 0,
431
+ index = start - 1,
432
+ length = start + elementCount,
433
+ object = this,
434
+ result = [],
435
+ tail = slice.call(object, deleteEnd);
436
+
437
+ // delete elements from the array
438
+ while (++index < deleteEnd) {
439
+ if (index in object) {
440
+ result[index - start] = object[index];
441
+ delete object[index];
442
+ }
443
+ }
444
+ // insert elements
445
+ index = start - 1;
446
+ while (++index < length) {
447
+ object[index] = elements[index - start];
448
+ }
449
+ // append tail elements
450
+ start = index--;
451
+ length = (object.length >>> 0) - deleteCount + elementCount;
452
+ while (++index < length) {
453
+ if ((index - start) in tail) {
454
+ object[index] = tail[index - start];
455
+ } else {
456
+ delete object[index];
457
+ }
458
+ }
459
+ // delete excess elements
460
+ deleteCount = deleteCount > elementCount ? deleteCount - elementCount : 0;
461
+ while (deleteCount--) {
462
+ delete object[length + deleteCount];
463
+ }
464
+ object.length = length;
465
+ return result;
466
+ }
467
+
468
+ /**
469
+ * Rearrange the host array's elements in reverse order.
470
+ * @memberOf Benchmark.Suite
471
+ * @returns {Array} The reversed array.
472
+ */
473
+ function reverse() {
474
+ var upperIndex,
475
+ value,
476
+ index = -1,
477
+ object = Object(this),
478
+ length = object.length >>> 0,
479
+ middle = floor(length / 2);
480
+
481
+ if (length > 1) {
482
+ while (++index < middle) {
483
+ upperIndex = length - index - 1;
484
+ value = upperIndex in object ? object[upperIndex] : uid;
485
+ if (index in object) {
486
+ object[upperIndex] = object[index];
487
+ } else {
488
+ delete object[upperIndex];
489
+ }
490
+ if (value != uid) {
491
+ object[index] = value;
492
+ } else {
493
+ delete object[index];
494
+ }
495
+ }
496
+ }
497
+ return object;
498
+ }
499
+
500
+ /**
501
+ * Removes the first element of the host array and returns it.
502
+ * @memberOf Benchmark.Suite
503
+ * @returns {Mixed} The first element of the array.
504
+ */
505
+ function shift() {
506
+ return insert.call(this, 0, 1)[0];
507
+ }
508
+
509
+ /**
510
+ * Creates an array of the host array's elements from the start index up to,
511
+ * but not including, the end index.
512
+ * @memberOf Benchmark.Suite
513
+ * @returns {Array} The new array.
514
+ */
515
+ function slice(start, end) {
516
+ var index = -1,
517
+ object = Object(this),
518
+ length = object.length >>> 0,
519
+ result = [];
520
+
521
+ start = toInteger(start);
522
+ start = start < 0 ? max(length + start, 0) : min(start, length);
523
+ start--;
524
+ end = end == null ? length : toInteger(end);
525
+ end = end < 0 ? max(length + end, 0) : min(end, length);
526
+
527
+ while ((++index, ++start) < end) {
528
+ if (start in object) {
529
+ result[index] = object[start];
530
+ }
531
+ }
532
+ return result;
533
+ }
534
+
535
+ /**
536
+ * Allows removing a range of elements and/or inserting elements into the host array.
537
+ * @memberOf Benchmark.Suite
538
+ * @returns {Array} An array of removed elements.
539
+ */
540
+ function splice(start, deleteCount) {
541
+ var object = Object(this),
542
+ length = object.length >>> 0;
543
+
544
+ start = toInteger(start);
545
+ start = start < 0 ? max(length + start, 0) : min(start, length);
546
+ deleteCount = min(max(toInteger(deleteCount), 0), length - start);
547
+ return insert.call(object, start, deleteCount, slice.call(arguments, 2));
548
+ }
549
+
550
+ /**
551
+ * Converts the specified `value` to an integer.
552
+ * @private
553
+ * @param {Mixed} value The value to convert.
554
+ * @returns {Number} The resulting integer.
555
+ */
556
+ function toInteger(value) {
557
+ value = +value;
558
+ return value === 0 || !isFinite(value) ? value || 0 : value - (value % 1);
559
+ }
560
+
561
+ /**
562
+ * Appends arguments to the host array.
563
+ * @memberOf Benchmark.Suite
564
+ * @returns {Number} The new length.
565
+ */
566
+ function unshift() {
567
+ var object = Object(this);
568
+ insert.call(object, 0, 0, arguments);
569
+ return object.length;
570
+ }
571
+
572
+ /*--------------------------------------------------------------------------*/
573
+
574
+ /**
575
+ * Executes a function, associated with a benchmark, synchronously or asynchronously.
576
+ * @private
577
+ * @param {Object} options The options object.
578
+ */
579
+ function call(options) {
580
+ options || (options = {});
581
+ var fn = options.fn;
582
+
583
+ (!options.async && fn || function() {
584
+ var bench = options.benchmark,
585
+ ids = bench._timerIds || (bench._timerIds = []),
586
+ index = ids.length;
587
+
588
+ // under normal use there should only be one id at any time per benchmark
589
+ ids.push(setTimeout(function() {
590
+ ids.splice(index, 1);
591
+ ids.length || delete bench._timerIds;
592
+ fn();
593
+ }, bench.delay * 1e3));
594
+ })();
595
+ }
596
+
597
+ /**
598
+ * Creates a function from the given arguments string and body.
599
+ * @private
600
+ * @param {String} args The comma separated function arguments.
601
+ * @param {String} body The function body.
602
+ * @returns {Function} The new function.
603
+ */
604
+ function createFunction() {
605
+ // lazy defined to fork based on supported features
606
+ createFunction = function(args, body) {
607
+ var anchor = freeDefine ? define.amd : Benchmark,
608
+ prop = uid + 'createFunction';
609
+
610
+ runScript((freeDefine ? 'define.amd.' : 'Benchmark.') + prop + '=function(' + args + '){' + body + '}');
611
+ return [anchor[prop], delete anchor[prop]][0];
612
+ };
613
+ // fix JaegerMonkey bug
614
+ // http://bugzil.la/639720
615
+ createFunction = (createFunction('', 'return"' + uid + '"') || noop)() == uid ? createFunction : Function;
616
+ return createFunction.apply(null, arguments);
617
+ }
618
+
619
+ /**
620
+ * Iterates over an object's properties, executing the `callback` for each.
621
+ * Callbacks may terminate the loop by explicitly returning `false`.
622
+ * @private
623
+ * @param {Object} object The object to iterate over.
624
+ * @param {Function} callback The function executed per own property.
625
+ * @param {Object} options The options object.
626
+ * @returns {Object} Returns the object iterated over.
627
+ */
628
+ function forProps() {
629
+ var forShadowed,
630
+ skipSeen,
631
+ forArgs = true,
632
+ shadowed = ['constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf'];
633
+
634
+ (function(enumFlag, key) {
635
+ // must use a non-native constructor to catch the Safari 2 issue
636
+ function Klass() { this.valueOf = 0; };
637
+ Klass.prototype.valueOf = 0;
638
+ // check various for..in bugs
639
+ for (key in new Klass) {
640
+ enumFlag += key == 'valueOf' ? 1 : 0;
641
+ }
642
+ // check if `arguments` objects have non-enumerable indexes
643
+ for (key in arguments) {
644
+ key == '0' && (forArgs = false);
645
+ }
646
+ // Safari 2 iterates over shadowed properties twice
647
+ // http://replay.waybackmachine.org/20090428222941/http://tobielangel.com/2007/1/29/for-in-loop-broken-in-safari/
648
+ skipSeen = enumFlag == 2;
649
+ // IE < 9 incorrectly makes an object's properties non-enumerable if they have
650
+ // the same name as other non-enumerable properties in its prototype chain.
651
+ forShadowed = !enumFlag;
652
+ }(0));
653
+
654
+ // lazy define
655
+ forProps = function(object, callback, options) {
656
+ options || (options = {});
657
+
658
+ var ctor,
659
+ key,
660
+ keys,
661
+ skipCtor,
662
+ done = !object,
663
+ result = [object, object = Object(object)][0],
664
+ which = options.which,
665
+ allFlag = which == 'all',
666
+ fn = callback,
667
+ index = -1,
668
+ iteratee = object,
669
+ length = object.length,
670
+ ownFlag = allFlag || which == 'own',
671
+ seen = {},
672
+ skipProto = isClassOf(object, 'Function'),
673
+ thisArg = options.bind;
674
+
675
+ object = Object(object);
676
+
677
+ if (thisArg !== undefined) {
678
+ callback = function(value, key, object) {
679
+ return fn.call(thisArg, value, key, object);
680
+ };
681
+ }
682
+ // iterate all properties
683
+ if (allFlag && has.getAllKeys) {
684
+ for (index = 0, keys = getAllKeys(object), length = keys.length; index < length; index++) {
685
+ key = keys[index];
686
+ if (callback(object[key], key, object) === false) {
687
+ break;
688
+ }
689
+ }
690
+ }
691
+ // else iterate only enumerable properties
692
+ else {
693
+ for (key in object) {
694
+ // Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1
695
+ // (if the prototype or a property on the prototype has been set)
696
+ // incorrectly set a function's `prototype` property [[Enumerable]] value
697
+ // to `true`. Because of this we standardize on skipping the `prototype`
698
+ // property of functions regardless of their [[Enumerable]] value.
699
+ if ((done =
700
+ !(skipProto && key == 'prototype') &&
701
+ !(skipSeen && (hasKey(seen, key) || !(seen[key] = true))) &&
702
+ (!ownFlag || ownFlag && hasKey(object, key)) &&
703
+ callback(object[key], key, object) === false)) {
704
+ break;
705
+ }
706
+ }
707
+ // in IE < 9 strings don't support accessing characters by index
708
+ if (!done && (
709
+ forArgs && isArguments(object) ||
710
+ (noCharByIndex || noCharByOwnIndex) && isClassOf(object, 'String'))) {
711
+ noCharByIndex && (iteratee = object.split(''));
712
+ while (++index < length) {
713
+ if ((done =
714
+ callback(iteratee[index], String(index), object) === false)) {
715
+ break;
716
+ }
717
+ }
718
+ }
719
+ if (!done && forShadowed) {
720
+ // Because IE < 9 can't set the `[[Enumerable]]` attribute of an existing
721
+ // property and the `constructor` property of a prototype defaults to
722
+ // non-enumerable, we manually skip the `constructor` property when we
723
+ // think we are iterating over a `prototype` object.
724
+ ctor = object.constructor;
725
+ skipCtor = ctor && ctor.prototype && ctor.prototype.constructor === ctor;
726
+ for (index = 0; index < 7; index++) {
727
+ key = shadowed[index];
728
+ if (!(skipCtor && key == 'constructor') &&
729
+ hasKey(object, key) &&
730
+ callback(object[key], key, object) === false) {
731
+ break;
732
+ }
733
+ }
734
+ }
735
+ }
736
+ return result;
737
+ };
738
+ return forProps.apply(null, arguments);
739
+ }
740
+
741
+ /**
742
+ * Gets the critical value for the specified degrees of freedom.
743
+ * @private
744
+ * @param {Number} df The degrees of freedom.
745
+ * @returns {Number} The critical value.
746
+ */
747
+ function getCriticalValue(df) {
748
+ return distribution[Math.round(df) || 1] || distribution.infinity;
749
+ }
750
+
751
+ /**
752
+ * Gets the name of the first argument from a function's source.
753
+ * @private
754
+ * @param {Function} fn The function.
755
+ * @param {String} altName A string used when the name of the first argument is unretrievable.
756
+ * @returns {String} The argument name.
757
+ */
758
+ function getFirstArgument(fn, altName) {
759
+ return (!hasKey(fn, 'toString') &&
760
+ (/^[\s(]*function[^(]*\(([^\s,)]+)/.exec(fn) || 0)[1]) || altName || '';
761
+ }
762
+
763
+ /**
764
+ * Computes the arithmetic mean of a sample.
765
+ * @private
766
+ * @param {Array} sample The sample.
767
+ * @returns {Number} The mean.
768
+ */
769
+ function getMean(sample) {
770
+ return reduce(sample, function(sum, x) {
771
+ return sum + x;
772
+ }, 0) / sample.length || 0;
773
+ }
774
+
775
+ /**
776
+ * Gets the source code of a function.
777
+ * @private
778
+ * @param {Function} fn The function.
779
+ * @param {String} altSource A string used when a function's source code is unretrievable.
780
+ * @returns {String} The function's source code.
781
+ */
782
+ function getSource(fn, altSource) {
783
+ var result = altSource;
784
+ if (isStringable(fn)) {
785
+ result = String(fn);
786
+ } else if (has.decompilation) {
787
+ result = (/^[^{]+{([\s\S]*)}\s*$/.exec(fn) || 0)[1];
788
+ }
789
+ return (result || '').replace(/^\s+|\s+$/g, '');
790
+ }
791
+
792
+ /**
793
+ * Modify a string by replacing named tokens with matching object property values.
794
+ * @private
795
+ * @param {String} string The string to modify.
796
+ * @param {Object} object The template object.
797
+ * @returns {String} The modified string.
798
+ */
799
+ function interpolate(string, object) {
800
+ forOwn(object, function(value, key) {
801
+ string = string.replace(RegExp('#\\{' + key + '\\}', 'g'), value);
802
+ });
803
+ return string;
804
+ }
805
+
806
+ /**
807
+ * Checks if a value is an `arguments` object.
808
+ * @private
809
+ * @param {Mixed} value The value to check.
810
+ * @returns {Boolean} Returns `true` if the value is an `arguments` object, else `false`.
811
+ */
812
+ function isArguments() {
813
+ // lazy define
814
+ isArguments = function(value) {
815
+ return toString.call(value) == '[object Arguments]';
816
+ };
817
+ if (noArgumentsClass) {
818
+ isArguments = function(value) {
819
+ return hasKey(value, 'callee') &&
820
+ !(propertyIsEnumerable && propertyIsEnumerable.call(value, 'callee'));
821
+ };
822
+ }
823
+ return isArguments(arguments[0]);
824
+ }
825
+
826
+ /**
827
+ * Checks if an object is of the specified class.
828
+ * @private
829
+ * @param {Mixed} value The value to check.
830
+ * @param {String} name The name of the class.
831
+ * @returns {Boolean} Returns `true` if the value is of the specified class, else `false`.
832
+ */
833
+ function isClassOf(value, name) {
834
+ return value != null && toString.call(value) == '[object ' + name + ']';
835
+ }
836
+
837
+ /**
838
+ * Host objects can return type values that are different from their actual
839
+ * data type. The objects we are concerned with usually return non-primitive
840
+ * types of object, function, or unknown.
841
+ * @private
842
+ * @param {Mixed} object The owner of the property.
843
+ * @param {String} property The property to check.
844
+ * @returns {Boolean} Returns `true` if the property value is a non-primitive, else `false`.
845
+ */
846
+ function isHostType(object, property) {
847
+ var type = object != null ? typeof object[property] : 'number';
848
+ return !/^(?:boolean|number|string|undefined)$/.test(type) &&
849
+ (type == 'object' ? !!object[property] : true);
850
+ }
851
+
852
+ /**
853
+ * Checks if the specified `value` is an object created by the `Object` constructor.
854
+ * @private
855
+ * @param {Mixed} value The value to check.
856
+ * @returns {Boolean} Returns `true` if `value` is an object, else `false`.
857
+ */
858
+ function isObject(value) {
859
+ var ctor,
860
+ result = !!value && toString.call(value) == '[object Object]';
861
+
862
+ if (result && noArgumentsClass) {
863
+ // avoid false positives for `arguments` objects in IE < 9
864
+ result = !isArguments(value);
865
+ }
866
+ if (result) {
867
+ // IE < 9 presents nodes like `Object` objects:
868
+ // IE < 8 are missing the node's constructor property
869
+ // IE 8 node constructors are typeof "object"
870
+ ctor = value.constructor;
871
+ // check if the constructor is `Object` as `Object instanceof Object` is `true`
872
+ if ((result = isClassOf(ctor, 'Function') && ctor instanceof ctor)) {
873
+ // assume objects created by the `Object` constructor have no inherited enumerable properties
874
+ // (we assume there are no `Object.prototype` extensions)
875
+ forProps(value, function(subValue, subKey) {
876
+ result = subKey;
877
+ });
878
+ // An object's own properties are iterated before inherited properties.
879
+ // If the last iterated key belongs to an object's own property then
880
+ // there are no inherited enumerable properties.
881
+ result = result === true || hasKey(value, result);
882
+ }
883
+ }
884
+ return result;
885
+ }
886
+
887
+ /**
888
+ * Checks if a value can be safely coerced to a string.
889
+ * @private
890
+ * @param {Mixed} value The value to check.
891
+ * @returns {Boolean} Returns `true` if the value can be coerced, else `false`.
892
+ */
893
+ function isStringable(value) {
894
+ return hasKey(value, 'toString') || isClassOf(value, 'String');
895
+ }
896
+
897
+ /**
898
+ * Wraps a function and passes `this` to the original function as the first argument.
899
+ * @private
900
+ * @param {Function} fn The function to be wrapped.
901
+ * @returns {Function} The new function.
902
+ */
903
+ function methodize(fn) {
904
+ return function() {
905
+ var args = [this];
906
+ args.push.apply(args, arguments);
907
+ return fn.apply(null, args);
908
+ };
909
+ }
910
+
911
+ /**
912
+ * A no-operation function.
913
+ * @private
914
+ */
915
+ function noop() {
916
+ // no operation performed
917
+ }
918
+
919
+ /**
920
+ * A wrapper around require() to suppress `module missing` errors.
921
+ * @private
922
+ * @param {String} id The module id.
923
+ * @returns {Mixed} The exported module or `null`.
924
+ */
925
+ function req(id) {
926
+ try {
927
+ return freeExports && freeRequire(id);
928
+ } catch(e) { }
929
+ return null;
930
+ }
931
+
932
+ /**
933
+ * Runs a snippet of JavaScript via script injection.
934
+ * @private
935
+ * @param {String} code The code to run.
936
+ */
937
+ function runScript(code) {
938
+ var parent,
939
+ script,
940
+ sibling,
941
+ anchor = freeDefine ? define.amd : Benchmark,
942
+ prop = uid + 'runScript',
943
+ prefix = '(' + (freeDefine ? 'define.amd.' : 'Benchmark.') + prop + '||function(){})();';
944
+
945
+ // Non-browser environments, Firefox 2.0.0.2 (executes asynchronously),
946
+ // and IE < 9 will error here and that's OK.
947
+ // Script injection is only used to avoid the previously commented JaegerMonkey bug.
948
+ // We remove the inserted script *before* running the code to avoid differences
949
+ // in the expected script element count/order of the document.
950
+ try {
951
+ sibling = document.getElementsByTagName('script')[0];
952
+ parent = sibling.parentNode;
953
+ script = document.createElement('script');
954
+ anchor[prop] = function() { parent.removeChild(script); };
955
+ script.appendChild(document.createTextNode(prefix + code));
956
+ parent.insertBefore(script, sibling);
957
+ } catch(e) { }
958
+
959
+ delete anchor[prop];
960
+ }
961
+
962
+ /**
963
+ * A helper function for setting options/event handlers.
964
+ * @private
965
+ * @param {Object} bench The benchmark instance.
966
+ * @param {Object} [options={}] Options object.
967
+ */
968
+ function setOptions(bench, options) {
969
+ options = extend({}, bench.constructor.options, options);
970
+ bench.options = forOwn(options, function(value, key) {
971
+ if (value != null) {
972
+ // add event listeners
973
+ if (/^on[A-Z]/.test(key)) {
974
+ forEach(key.split(' '), function(key) {
975
+ bench.on(key.slice(2).toLowerCase(), value);
976
+ });
977
+ } else {
978
+ bench[key] = deepClone(value);
979
+ }
980
+ }
981
+ });
982
+ }
983
+
984
+ /*--------------------------------------------------------------------------*/
985
+
986
+ /**
987
+ * Handles cycling/completing the deferred benchmark.
988
+ * @memberOf Benchmark.Deferred
989
+ */
990
+ function resolve() {
991
+ var me = this,
992
+ bench = me.benchmark;
993
+
994
+ if (++me.cycles < bench.count) {
995
+ (bench._host || bench).compiled.call(me, timer.ns, timer);
996
+ } else {
997
+ timer.stop(me);
998
+ call({
999
+ 'async': true,
1000
+ 'benchmark': bench,
1001
+ 'fn': function() {
1002
+ cycle({ 'benchmark': bench, 'deferred': me });
1003
+ }
1004
+ });
1005
+ }
1006
+ }
1007
+
1008
+ /*--------------------------------------------------------------------------*/
1009
+
1010
+ /**
1011
+ * A deep clone utility.
1012
+ * @static
1013
+ * @memberOf Benchmark
1014
+ * @param {Mixed} value The value to clone.
1015
+ * @returns {Mixed} The cloned value.
1016
+ */
1017
+ function deepClone(value) {
1018
+ var accessor,
1019
+ circular,
1020
+ clone,
1021
+ ctor,
1022
+ data,
1023
+ descriptor,
1024
+ extensible,
1025
+ key,
1026
+ length,
1027
+ markerKey,
1028
+ parent,
1029
+ result,
1030
+ source,
1031
+ subIndex,
1032
+ index = -1,
1033
+ marked = [],
1034
+ unmarked = [],
1035
+ queue = { '0': { 'value': value }, 'length': 1 };
1036
+
1037
+ /**
1038
+ * An easily detectable decorator for cloned values.
1039
+ */
1040
+ function Marker(object) {
1041
+ this.raw = object;
1042
+ }
1043
+
1044
+ /**
1045
+ * Gets an available marker key for the given object.
1046
+ */
1047
+ function getMarkerKey(object) {
1048
+ // avoid collisions with existing keys
1049
+ var result = uid;
1050
+ while (object[result] && object[result].constructor != Marker) {
1051
+ result += 1;
1052
+ }
1053
+ return result;
1054
+ }
1055
+
1056
+ /**
1057
+ * The callback used by `forProps()`.
1058
+ */
1059
+ function propCallback(subValue, subKey) {
1060
+ // exit early to avoid cloning the marker
1061
+ if (subValue && subValue.constructor == Marker) {
1062
+ return;
1063
+ }
1064
+ // add objects to the queue
1065
+ if (subValue === Object(subValue)) {
1066
+ queue[queue.length++] = { 'key': subKey, 'parent': clone, 'source': value };
1067
+ }
1068
+ // assign non-objects
1069
+ else {
1070
+ clone[subKey] = subValue;
1071
+ }
1072
+ }
1073
+
1074
+ while ((data = queue[++index])) {
1075
+ key = data.key;
1076
+ parent = data.parent;
1077
+ source = data.source;
1078
+ clone = value = source ? source[key] : data.value;
1079
+ accessor = circular = descriptor = false;
1080
+ delete queue[index - 1];
1081
+
1082
+ // create a basic clone to filter out functions, DOM elements, and
1083
+ // other non `Object` objects
1084
+ if (value === Object(value)) {
1085
+ ctor = value.constructor;
1086
+ switch (toString.call(value)) {
1087
+ case '[object Array]':
1088
+ clone = new ctor(value.length);
1089
+ break;
1090
+
1091
+ case '[object Boolean]':
1092
+ clone = new ctor(value == true);
1093
+ break;
1094
+
1095
+ case '[object Date]':
1096
+ clone = new ctor(+value);
1097
+ break;
1098
+
1099
+ case '[object Object]':
1100
+ isObject(value) && (clone = new ctor);
1101
+ break;
1102
+
1103
+ case '[object Number]':
1104
+ case '[object String]':
1105
+ clone = new ctor(value);
1106
+ break;
1107
+
1108
+ case '[object RegExp]':
1109
+ clone = ctor(value.source,
1110
+ (value.global ? 'g' : '') +
1111
+ (value.ignoreCase ? 'i' : '') +
1112
+ (value.multiline ? 'm' : ''));
1113
+ }
1114
+ // continue clone if `value` doesn't have an accessor descriptor
1115
+ // http://es5.github.com/#x8.10.1
1116
+ if (clone != value &&
1117
+ !(descriptor = source && has.descriptors && getDescriptor(source, key),
1118
+ accessor = descriptor && (descriptor.get || descriptor.set))) {
1119
+ // use an existing clone (circular reference)
1120
+ if ((extensible = isExtensible(value))) {
1121
+ markerKey = getMarkerKey(value);
1122
+ if (value[markerKey]) {
1123
+ circular = clone = value[markerKey].raw;
1124
+ }
1125
+ } else {
1126
+ // for frozen/sealed objects
1127
+ for (subIndex = 0, length = unmarked.length; subIndex < length; subIndex++) {
1128
+ data = unmarked[subIndex];
1129
+ if (data.object === value) {
1130
+ circular = clone = data.clone;
1131
+ break;
1132
+ }
1133
+ }
1134
+ }
1135
+ if (!circular) {
1136
+ // mark object to allow quickly detecting circular references and tie it to its clone
1137
+ if (extensible) {
1138
+ value[markerKey] = new Marker(clone);
1139
+ marked.push({ 'key': markerKey, 'object': value });
1140
+ } else {
1141
+ // for frozen/sealed objects
1142
+ unmarked.push({ 'clone': clone, 'object': value });
1143
+ }
1144
+ // iterate over object properties
1145
+ forProps(value, propCallback, { 'which': 'all' });
1146
+ }
1147
+ }
1148
+ }
1149
+ if (parent) {
1150
+ // for custom property descriptors
1151
+ if (accessor || (descriptor &&
1152
+ !(descriptor.configurable && descriptor.enumerable && descriptor.writable))) {
1153
+ descriptor.value && (descriptor.value = clone);
1154
+ setDescriptor(parent, key, descriptor);
1155
+ }
1156
+ // for default property descriptors
1157
+ else {
1158
+ parent[key] = clone;
1159
+ }
1160
+ } else {
1161
+ result = clone;
1162
+ }
1163
+ }
1164
+ // remove markers
1165
+ for (index = 0, length = marked.length; index < length; index++) {
1166
+ data = marked[index];
1167
+ delete data.object[data.key];
1168
+ }
1169
+ return result;
1170
+ }
1171
+
1172
+ /**
1173
+ * An iteration utility for arrays and objects.
1174
+ * Callbacks may terminate the loop by explicitly returning `false`.
1175
+ * @static
1176
+ * @memberOf Benchmark
1177
+ * @param {Array|Object} object The object to iterate over.
1178
+ * @param {Function} callback The function called per iteration.
1179
+ * @param {Object} thisArg The `this` binding for the callback function.
1180
+ * @returns {Array|Object} Returns the object iterated over.
1181
+ */
1182
+ function each(object, callback, thisArg) {
1183
+ var fn = callback,
1184
+ index = -1,
1185
+ result = [object, object = Object(object)][0],
1186
+ origObject = object,
1187
+ length = object.length,
1188
+ isSnapshot = !!(object.snapshotItem && (length = object.snapshotLength)),
1189
+ isSplittable = (noCharByIndex || noCharByOwnIndex) && isClassOf(object, 'String'),
1190
+ isConvertable = isSnapshot || isSplittable || 'item' in object;
1191
+
1192
+ // in Opera < 10.5 `hasKey(object, 'length')` returns `false` for NodeLists
1193
+ if (length === length >>> 0) {
1194
+ if (isConvertable) {
1195
+ // the third argument of the callback is the original non-array object
1196
+ callback = function(value, index) {
1197
+ return fn.call(this, value, index, origObject);
1198
+ };
1199
+ // in IE < 9 strings don't support accessing characters by index
1200
+ if (isSplittable) {
1201
+ object = object.split('');
1202
+ } else {
1203
+ object = [];
1204
+ while (++index < length) {
1205
+ // in Safari 2 `index in object` is always `false` for NodeLists
1206
+ object[index] = isSnapshot ? result.snapshotItem(index) : result[index];
1207
+ }
1208
+ }
1209
+ }
1210
+ forEach(object, callback, thisArg);
1211
+ } else {
1212
+ forOwn(object, callback, thisArg);
1213
+ }
1214
+ return result;
1215
+ }
1216
+
1217
+ /**
1218
+ * Copies own/inherited properties of a source object to the destination object.
1219
+ * @static
1220
+ * @memberOf Benchmark
1221
+ * @param {Object} destination The destination object.
1222
+ * @param {Object} [source={}] The source object.
1223
+ * @returns {Object} The destination object.
1224
+ */
1225
+ function extend(destination, source) {
1226
+ // Chrome < 14 incorrectly sets `destination` to `undefined` when we `delete arguments[0]`
1227
+ // http://code.google.com/p/v8/issues/detail?id=839
1228
+ destination = [destination, delete arguments[0]][0];
1229
+ forEach(arguments, function(source) {
1230
+ forProps(source, function(value, key) {
1231
+ destination[key] = value;
1232
+ });
1233
+ });
1234
+ return destination;
1235
+ }
1236
+
1237
+ /**
1238
+ * A generic `Array#filter` like method.
1239
+ * @static
1240
+ * @memberOf Benchmark
1241
+ * @param {Array} array The array to iterate over.
1242
+ * @param {Function|String} callback The function/alias called per iteration.
1243
+ * @param {Object} thisArg The `this` binding for the callback function.
1244
+ * @returns {Array} A new array of values that passed callback filter.
1245
+ * @example
1246
+ *
1247
+ * // get odd numbers
1248
+ * Benchmark.filter([1, 2, 3, 4, 5], function(n) {
1249
+ * return n % 2;
1250
+ * }); // -> [1, 3, 5];
1251
+ *
1252
+ * // get fastest benchmarks
1253
+ * Benchmark.filter(benches, 'fastest');
1254
+ *
1255
+ * // get slowest benchmarks
1256
+ * Benchmark.filter(benches, 'slowest');
1257
+ *
1258
+ * // get benchmarks that completed without erroring
1259
+ * Benchmark.filter(benches, 'successful');
1260
+ */
1261
+ function filter(array, callback, thisArg) {
1262
+ var result;
1263
+
1264
+ if (callback == 'successful') {
1265
+ // callback to exclude errored or unrun benchmarks
1266
+ callback = function(bench) { return bench.cycles; };
1267
+ }
1268
+ else if (callback == 'fastest' || callback == 'slowest') {
1269
+ // get successful, sort by period + margin of error, and filter fastest/slowest
1270
+ result = filter(array, 'successful').sort(function(a, b) {
1271
+ a = a.stats; b = b.stats;
1272
+ return (a.mean + a.moe > b.mean + b.moe ? 1 : -1) * (callback == 'fastest' ? 1 : -1);
1273
+ });
1274
+ result = filter(result, function(bench) {
1275
+ return !result[0].compare(bench);
1276
+ });
1277
+ }
1278
+ return result || reduce(array, function(result, value, index) {
1279
+ return callback.call(thisArg, value, index, array) ? (result.push(value), result) : result;
1280
+ }, []);
1281
+ }
1282
+
1283
+ /**
1284
+ * A generic `Array#forEach` like method.
1285
+ * Callbacks may terminate the loop by explicitly returning `false`.
1286
+ * @static
1287
+ * @memberOf Benchmark
1288
+ * @param {Array} array The array to iterate over.
1289
+ * @param {Function} callback The function called per iteration.
1290
+ * @param {Object} thisArg The `this` binding for the callback function.
1291
+ * @returns {Array} Returns the array iterated over.
1292
+ */
1293
+ function forEach(array, callback, thisArg) {
1294
+ var fn = callback,
1295
+ index = -1,
1296
+ length = (array = Object(array)).length >>> 0;
1297
+
1298
+ if (thisArg !== undefined) {
1299
+ callback = function(value, index, array) {
1300
+ return fn.call(thisArg, value, index, array);
1301
+ };
1302
+ }
1303
+ while (++index < length) {
1304
+ if (index in array &&
1305
+ callback(array[index], index, array) === false) {
1306
+ break;
1307
+ }
1308
+ }
1309
+ return array;
1310
+ }
1311
+
1312
+ /**
1313
+ * Iterates over an object's own properties, executing the `callback` for each.
1314
+ * Callbacks may terminate the loop by explicitly returning `false`.
1315
+ * @static
1316
+ * @memberOf Benchmark
1317
+ * @param {Object} object The object to iterate over.
1318
+ * @param {Function} callback The function executed per own property.
1319
+ * @param {Object} thisArg The `this` binding for the callback function.
1320
+ * @returns {Object} Returns the object iterated over.
1321
+ */
1322
+ function forOwn(object, callback, thisArg) {
1323
+ return forProps(object, callback, { 'bind': thisArg, 'which': 'own' });
1324
+ }
1325
+
1326
+ /**
1327
+ * Converts a number to a more readable comma-separated string representation.
1328
+ * @static
1329
+ * @memberOf Benchmark
1330
+ * @param {Number} number The number to convert.
1331
+ * @returns {String} The more readable string representation.
1332
+ */
1333
+ function formatNumber(number) {
1334
+ number = String(number).split('.');
1335
+ return number[0].replace(/(?=(?:\d{3})+$)(?!\b)/g, ',') +
1336
+ (number[1] ? '.' + number[1] : '');
1337
+ }
1338
+
1339
+ /**
1340
+ * Checks if an object has the specified key as a direct property.
1341
+ * @static
1342
+ * @memberOf Benchmark
1343
+ * @param {Object} object The object to check.
1344
+ * @param {String} key The key to check for.
1345
+ * @returns {Boolean} Returns `true` if key is a direct property, else `false`.
1346
+ */
1347
+ function hasKey() {
1348
+ // lazy define for worst case fallback (not as accurate)
1349
+ hasKey = function(object, key) {
1350
+ var parent = object != null && (object.constructor || Object).prototype;
1351
+ return !!parent && key in Object(object) && !(key in parent && object[key] === parent[key]);
1352
+ };
1353
+ // for modern browsers
1354
+ if (isClassOf(hasOwnProperty, 'Function')) {
1355
+ hasKey = function(object, key) {
1356
+ return object != null && hasOwnProperty.call(object, key);
1357
+ };
1358
+ }
1359
+ // for Safari 2
1360
+ else if ({}.__proto__ == Object.prototype) {
1361
+ hasKey = function(object, key) {
1362
+ var result = false;
1363
+ if (object != null) {
1364
+ object = Object(object);
1365
+ object.__proto__ = [object.__proto__, object.__proto__ = null, result = key in object][0];
1366
+ }
1367
+ return result;
1368
+ };
1369
+ }
1370
+ return hasKey.apply(this, arguments);
1371
+ }
1372
+
1373
+ /**
1374
+ * A generic `Array#indexOf` like method.
1375
+ * @static
1376
+ * @memberOf Benchmark
1377
+ * @param {Array} array The array to iterate over.
1378
+ * @param {Mixed} value The value to search for.
1379
+ * @param {Number} [fromIndex=0] The index to start searching from.
1380
+ * @returns {Number} The index of the matched value or `-1`.
1381
+ */
1382
+ function indexOf(array, value, fromIndex) {
1383
+ var index = toInteger(fromIndex),
1384
+ length = (array = Object(array)).length >>> 0;
1385
+
1386
+ index = (index < 0 ? max(0, length + index) : index) - 1;
1387
+ while (++index < length) {
1388
+ if (index in array && value === array[index]) {
1389
+ return index;
1390
+ }
1391
+ }
1392
+ return -1;
1393
+ }
1394
+
1395
+ /**
1396
+ * Invokes a method on all items in an array.
1397
+ * @static
1398
+ * @memberOf Benchmark
1399
+ * @param {Array} benches Array of benchmarks to iterate over.
1400
+ * @param {String|Object} name The name of the method to invoke OR options object.
1401
+ * @param {Mixed} [arg1, arg2, ...] Arguments to invoke the method with.
1402
+ * @returns {Array} A new array of values returned from each method invoked.
1403
+ * @example
1404
+ *
1405
+ * // invoke `reset` on all benchmarks
1406
+ * Benchmark.invoke(benches, 'reset');
1407
+ *
1408
+ * // invoke `emit` with arguments
1409
+ * Benchmark.invoke(benches, 'emit', 'complete', listener);
1410
+ *
1411
+ * // invoke `run(true)`, treat benchmarks as a queue, and register invoke callbacks
1412
+ * Benchmark.invoke(benches, {
1413
+ *
1414
+ * // invoke the `run` method
1415
+ * 'name': 'run',
1416
+ *
1417
+ * // pass a single argument
1418
+ * 'args': true,
1419
+ *
1420
+ * // treat as queue, removing benchmarks from front of `benches` until empty
1421
+ * 'queued': true,
1422
+ *
1423
+ * // called before any benchmarks have been invoked.
1424
+ * 'onStart': onStart,
1425
+ *
1426
+ * // called between invoking benchmarks
1427
+ * 'onCycle': onCycle,
1428
+ *
1429
+ * // called after all benchmarks have been invoked.
1430
+ * 'onComplete': onComplete
1431
+ * });
1432
+ */
1433
+ function invoke(benches, name) {
1434
+ var args,
1435
+ bench,
1436
+ queued,
1437
+ index = -1,
1438
+ options = { 'onStart': noop, 'onCycle': noop, 'onComplete': noop },
1439
+ result = map(benches, function(bench) { return bench; });
1440
+
1441
+ /**
1442
+ * Checks if invoking `run` with asynchronous cycles.
1443
+ */
1444
+ function isAsync(object) {
1445
+ var async = args[0] && args[0].async;
1446
+ return isRun(object) && (async == null ? object.options.async : async) && has.timeout;
1447
+ }
1448
+
1449
+ /**
1450
+ * Checks if invoking `run` on a benchmark instance.
1451
+ */
1452
+ function isRun(object) {
1453
+ // avoid using `instanceof` here because of IE memory leak issues with host objects
1454
+ return Object(object).constructor == Benchmark && name == 'run';
1455
+ }
1456
+
1457
+ /**
1458
+ * Checks if invoking `run` with synchronous cycles.
1459
+ */
1460
+ function isSync(object) {
1461
+ // if not asynchronous or deferred
1462
+ return !isAsync(object) && !(isRun(object) && object.defer);
1463
+ }
1464
+
1465
+ /**
1466
+ * Executes the method and if synchronous, fetches the next bench.
1467
+ */
1468
+ function execute() {
1469
+ var listeners,
1470
+ sync = isSync(bench);
1471
+
1472
+ if (!sync) {
1473
+ // use `getNext` as a listener
1474
+ bench.on('complete', getNext);
1475
+ listeners = bench.events.complete;
1476
+ listeners.splice(0, 0, listeners.pop());
1477
+ }
1478
+ // execute method
1479
+ result[index] = isClassOf(bench && bench[name], 'Function') ? bench[name].apply(bench, args) : undefined;
1480
+ // if synchronous return true until finished
1481
+ return sync && getNext();
1482
+ }
1483
+
1484
+ /**
1485
+ * Fetches the next bench or executes `onComplete` callback.
1486
+ */
1487
+ function getNext() {
1488
+ var last = bench,
1489
+ sync = isSync(last);
1490
+
1491
+ if (!sync) {
1492
+ last.removeListener('complete', getNext);
1493
+ last.emit('complete');
1494
+ }
1495
+ // choose next benchmark if not exiting early
1496
+ if (options.onCycle.call(benches, Event('cycle'), last) !== false && raiseIndex() !== false) {
1497
+ bench = queued ? benches[0] : result[index];
1498
+ if (!isSync(bench)) {
1499
+ call({ 'async': isAsync(bench), 'benchmark': bench, 'fn': execute });
1500
+ }
1501
+ else if (!sync) {
1502
+ // resume synchronous execution
1503
+ while (execute()) { }
1504
+ }
1505
+ else {
1506
+ // continue synchronous execution
1507
+ return true;
1508
+ }
1509
+ } else {
1510
+ options.onComplete.call(benches, Event('complete'), last);
1511
+ }
1512
+ // when async the `return false` will cancel the rest of the "complete"
1513
+ // listeners because they were called above and when synchronous it will
1514
+ // exit the while-loop
1515
+ return false;
1516
+ }
1517
+
1518
+ /**
1519
+ * Raises `index` to the next defined index or returns `false`.
1520
+ */
1521
+ function raiseIndex() {
1522
+ var length = result.length;
1523
+ // if queued then remove the previous bench and subsequent skipped non-entries
1524
+ if (queued) {
1525
+ do {
1526
+ ++index > 0 && shift.call(benches);
1527
+ } while ((length = benches.length) && !('0' in benches));
1528
+ }
1529
+ else {
1530
+ while (++index < length && !(index in result)) { }
1531
+ }
1532
+ // if we reached the last index then return `false`
1533
+ return (queued ? length : index < length) ? index : (index = false);
1534
+ }
1535
+
1536
+ // juggle arguments
1537
+ if (isClassOf(name, 'String')) {
1538
+ // 2 arguments (array, name)
1539
+ args = slice.call(arguments, 2);
1540
+ } else {
1541
+ // 2 arguments (array, options)
1542
+ options = extend(options, name);
1543
+ name = options.name;
1544
+ args = isClassOf(args = 'args' in options ? options.args : [], 'Array') ? args : [args];
1545
+ queued = options.queued;
1546
+ }
1547
+ // start iterating over the array
1548
+ if (raiseIndex() !== false) {
1549
+ bench = result[index];
1550
+ options.onStart.call(benches, Event('start'), bench);
1551
+
1552
+ // end early if the suite was aborted in an "onStart" listener
1553
+ if (benches.aborted && benches.constructor == Suite && name == 'run') {
1554
+ options.onCycle.call(benches, Event('cycle'), bench);
1555
+ options.onComplete.call(benches, Event('complete'), bench);
1556
+ }
1557
+ // else start
1558
+ else {
1559
+ if (isAsync(bench)) {
1560
+ call({ 'async': true, 'benchmark': bench, 'fn': execute });
1561
+ } else {
1562
+ while (execute()) { }
1563
+ }
1564
+ }
1565
+ }
1566
+ return result;
1567
+ }
1568
+
1569
+ /**
1570
+ * Creates a string of joined array values or object key-value pairs.
1571
+ * @static
1572
+ * @memberOf Benchmark
1573
+ * @param {Array|Object} object The object to operate on.
1574
+ * @param {String} [separator1=','] The separator used between key-value pairs.
1575
+ * @param {String} [separator2=': '] The separator used between keys and values.
1576
+ * @returns {String} The joined result.
1577
+ */
1578
+ function join(object, separator1, separator2) {
1579
+ var result = [],
1580
+ length = (object = Object(object)).length,
1581
+ arrayLike = length === length >>> 0;
1582
+
1583
+ separator2 || (separator2 = ': ');
1584
+ each(object, function(value, key) {
1585
+ result.push(arrayLike ? value : key + separator2 + value);
1586
+ });
1587
+ return result.join(separator1 || ',');
1588
+ }
1589
+
1590
+ /**
1591
+ * A generic `Array#map` like method.
1592
+ * @static
1593
+ * @memberOf Benchmark
1594
+ * @param {Array} array The array to iterate over.
1595
+ * @param {Function} callback The function called per iteration.
1596
+ * @param {Object} thisArg The `this` binding for the callback function.
1597
+ * @returns {Array} A new array of values returned by the callback.
1598
+ */
1599
+ function map(array, callback, thisArg) {
1600
+ return reduce(array, function(result, value, index) {
1601
+ result[index] = callback.call(thisArg, value, index, array);
1602
+ return result;
1603
+ }, Array(Object(array).length >>> 0));
1604
+ }
1605
+
1606
+ /**
1607
+ * Retrieves the value of a specified property from all items in an array.
1608
+ * @static
1609
+ * @memberOf Benchmark
1610
+ * @param {Array} array The array to iterate over.
1611
+ * @param {String} property The property to pluck.
1612
+ * @returns {Array} A new array of property values.
1613
+ */
1614
+ function pluck(array, property) {
1615
+ return map(array, function(object) {
1616
+ return object == null ? undefined : object[property];
1617
+ });
1618
+ }
1619
+
1620
+ /**
1621
+ * A generic `Array#reduce` like method.
1622
+ * @static
1623
+ * @memberOf Benchmark
1624
+ * @param {Array} array The array to iterate over.
1625
+ * @param {Function} callback The function called per iteration.
1626
+ * @param {Mixed} accumulator Initial value of the accumulator.
1627
+ * @returns {Mixed} The accumulator.
1628
+ */
1629
+ function reduce(array, callback, accumulator) {
1630
+ var noaccum = arguments.length < 3;
1631
+ forEach(array, function(value, index) {
1632
+ accumulator = noaccum ? (noaccum = 0, value) : callback(accumulator, value, index, array);
1633
+ });
1634
+ return accumulator;
1635
+ }
1636
+
1637
+ /*--------------------------------------------------------------------------*/
1638
+
1639
+ /**
1640
+ * Aborts all benchmarks in the suite.
1641
+ * @name abort
1642
+ * @memberOf Benchmark.Suite
1643
+ * @returns {Object} The suite instance.
1644
+ */
1645
+ function abortSuite() {
1646
+ var me = this;
1647
+
1648
+ if (me.running) {
1649
+ calledBy.abortSuite = true;
1650
+ me.reset();
1651
+ delete calledBy.abortSuite;
1652
+
1653
+ me.aborted = true;
1654
+ !calledBy.resetSuite && invoke(me, 'abort');
1655
+ me.emit('abort');
1656
+ }
1657
+ return me;
1658
+ }
1659
+
1660
+ /**
1661
+ * Adds a test to the benchmark suite.
1662
+ * @memberOf Benchmark.Suite
1663
+ * @param {String} name A name to identify the benchmark.
1664
+ * @param {Function|String} fn The test to benchmark.
1665
+ * @param {Object} [options={}] Options object.
1666
+ * @returns {Object} The benchmark instance.
1667
+ * @example
1668
+ *
1669
+ * // basic usage
1670
+ * suite.add(fn);
1671
+ *
1672
+ * // or using a name first
1673
+ * suite.add('foo', fn);
1674
+ *
1675
+ * // or with options
1676
+ * suite.add('foo', fn, {
1677
+ * 'onCycle': onCycle,
1678
+ * 'onComplete': onComplete
1679
+ * });
1680
+ */
1681
+ function add(name, fn, options) {
1682
+ var me = this,
1683
+ bench = Benchmark(name, fn, options);
1684
+
1685
+ me.push(bench);
1686
+ me.emit('add', bench);
1687
+ return me;
1688
+ }
1689
+
1690
+ /**
1691
+ * Creates a new suite with cloned benchmarks.
1692
+ * @name clone
1693
+ * @memberOf Benchmark.Suite
1694
+ * @param {Object} options Options object to overwrite cloned options.
1695
+ * @returns {Object} The new suite instance.
1696
+ */
1697
+ function cloneSuite(options) {
1698
+ var me = this,
1699
+ result = new me.constructor(extend({}, me.options, options));
1700
+
1701
+ // copy own properties
1702
+ forOwn(me, function(value, key) {
1703
+ if (!hasKey(result, key)) {
1704
+ result[key] = value && isClassOf(value.clone, 'Function') ? value.clone() : deepClone(value);
1705
+ }
1706
+ });
1707
+ return result;
1708
+ }
1709
+
1710
+ /**
1711
+ * An `Array#filter` like method.
1712
+ * @name filter
1713
+ * @memberOf Benchmark.Suite
1714
+ * @param {Function|String} callback The function/alias called per iteration.
1715
+ * @returns {Object} A new suite of benchmarks that passed callback filter.
1716
+ */
1717
+ function filterSuite(callback) {
1718
+ var me = this,
1719
+ result = new me.constructor;
1720
+
1721
+ result.push.apply(result, filter(me, callback));
1722
+ return result;
1723
+ }
1724
+
1725
+ /**
1726
+ * Resets all benchmarks in the suite.
1727
+ * @name reset
1728
+ * @memberOf Benchmark.Suite
1729
+ * @returns {Object} The suite instance.
1730
+ */
1731
+ function resetSuite() {
1732
+ var me = this,
1733
+ notAborting = !calledBy.abortSuite;
1734
+
1735
+ if (me.running && notAborting) {
1736
+ calledBy.resetSuite = true;
1737
+ me.abort();
1738
+ delete calledBy.resetSuite;
1739
+ me.aborted = false;
1740
+ }
1741
+ else if (me.aborted !== false || me.running !== false) {
1742
+ me.aborted = me.running = false;
1743
+ notAborting && invoke(me, 'reset');
1744
+ me.emit('reset');
1745
+ }
1746
+ return me;
1747
+ }
1748
+
1749
+ /**
1750
+ * Runs the suite.
1751
+ * @name run
1752
+ * @memberOf Benchmark.Suite
1753
+ * @param {Object} [options={}] Options object.
1754
+ * @returns {Object} The suite instance.
1755
+ * @example
1756
+ *
1757
+ * // basic usage
1758
+ * suite.run();
1759
+ *
1760
+ * // or with options
1761
+ * suite.run({ 'async': true, 'queued': true });
1762
+ */
1763
+ function runSuite(options) {
1764
+ var me = this,
1765
+ benches = [];
1766
+
1767
+ me.reset();
1768
+ me.running = true;
1769
+ options || (options = {});
1770
+
1771
+ invoke(me, {
1772
+ 'name': 'run',
1773
+ 'args': options,
1774
+ 'queued': options.queued,
1775
+ 'onStart': function(event, bench) {
1776
+ me.emit('start', bench);
1777
+ },
1778
+ 'onCycle': function(event, bench) {
1779
+ if (bench.error) {
1780
+ me.emit('error', bench);
1781
+ } else if (bench.cycles) {
1782
+ benches.push(bench);
1783
+ }
1784
+ return !me.aborted && me.emit('cycle', bench);
1785
+ },
1786
+ 'onComplete': function(event, bench) {
1787
+ me.running = false;
1788
+ me.emit('complete', bench);
1789
+ }
1790
+ });
1791
+ return me;
1792
+ }
1793
+
1794
+ /*--------------------------------------------------------------------------*/
1795
+
1796
+ /**
1797
+ * Registers a single listener for the specified event type(s).
1798
+ * @memberOf Benchmark, Benchmark.Suite
1799
+ * @param {String} type The event type.
1800
+ * @param {Function} listener The function called when the event occurs.
1801
+ * @returns {Object} The benchmark instance.
1802
+ * @example
1803
+ *
1804
+ * // register a listener for an event type
1805
+ * bench.addListener('cycle', listener);
1806
+ *
1807
+ * // register a listener for multiple event types
1808
+ * bench.addListener('start cycle', listener);
1809
+ */
1810
+ function addListener(type, listener) {
1811
+ var me = this,
1812
+ events = me.events || (me.events = {});
1813
+
1814
+ forEach(type.split(' '), function(type) {
1815
+ (events[type] || (events[type] = [])).push(listener);
1816
+ });
1817
+ return me;
1818
+ }
1819
+
1820
+ /**
1821
+ * Executes all registered listeners of the specified event type.
1822
+ * @memberOf Benchmark, Benchmark.Suite
1823
+ * @param {String|Object} type The event type or object.
1824
+ * @returns {Boolean} Returns `true` if all listeners were executed, else `false`.
1825
+ */
1826
+ function emit(type) {
1827
+ var me = this,
1828
+ event = Event(type),
1829
+ args = (arguments[0] = event, arguments),
1830
+ events = me.events,
1831
+ listeners = events && events[event.type] || [],
1832
+ result = true;
1833
+
1834
+ forEach(listeners.slice(), function(listener) {
1835
+ return (result = listener.apply(me, args) !== false);
1836
+ });
1837
+ return result;
1838
+ }
1839
+
1840
+ /**
1841
+ * Unregisters a single listener for the specified event type(s).
1842
+ * @memberOf Benchmark, Benchmark.Suite
1843
+ * @param {String} type The event type.
1844
+ * @param {Function} listener The function to unregister.
1845
+ * @returns {Object} The benchmark instance.
1846
+ * @example
1847
+ *
1848
+ * // unregister a listener for an event type
1849
+ * bench.removeListener('cycle', listener);
1850
+ *
1851
+ * // unregister a listener for multiple event types
1852
+ * bench.removeListener('start cycle', listener);
1853
+ */
1854
+ function removeListener(type, listener) {
1855
+ var me = this,
1856
+ events = me.events;
1857
+
1858
+ forEach(type.split(' '), function(type) {
1859
+ var listeners = events && events[type] || [],
1860
+ index = indexOf(listeners, listener);
1861
+ if (index > -1) {
1862
+ listeners.splice(index, 1);
1863
+ }
1864
+ });
1865
+ return me;
1866
+ }
1867
+
1868
+ /**
1869
+ * Unregisters all listeners or those for the specified event type(s).
1870
+ * @memberOf Benchmark, Benchmark.Suite
1871
+ * @param {String} type The event type.
1872
+ * @returns {Object} The benchmark instance.
1873
+ * @example
1874
+ *
1875
+ * // unregister all listeners
1876
+ * bench.removeAllListeners();
1877
+ *
1878
+ * // unregister all listeners for an event type
1879
+ * bench.removeAllListeners('cycle');
1880
+ *
1881
+ * // unregister all listeners for multiple event types
1882
+ * bench.removeAllListeners('start cycle complete');
1883
+ */
1884
+ function removeAllListeners(type) {
1885
+ var me = this,
1886
+ events = me.events;
1887
+
1888
+ forEach(type ? type.split(' ') : events, function(type) {
1889
+ (events && events[type] || []).length = 0;
1890
+ });
1891
+ return me;
1892
+ }
1893
+
1894
+ /*--------------------------------------------------------------------------*/
1895
+
1896
+ /**
1897
+ * Aborts the benchmark without recording times.
1898
+ * @memberOf Benchmark
1899
+ * @returns {Object} The benchmark instance.
1900
+ */
1901
+ function abort() {
1902
+ var me = this;
1903
+
1904
+ if (me.running) {
1905
+ if (has.timeout) {
1906
+ forEach(me._timerIds || [], clearTimeout);
1907
+ delete me._timerIds;
1908
+ }
1909
+ // avoid infinite recursion
1910
+ calledBy.abort = true;
1911
+ me.reset();
1912
+ delete calledBy.abort;
1913
+
1914
+ me.aborted = true;
1915
+ me.emit('abort');
1916
+ }
1917
+ return me;
1918
+ }
1919
+
1920
+ /**
1921
+ * Creates a new benchmark using the same test and options.
1922
+ * @memberOf Benchmark
1923
+ * @param {Object} options Options object to overwrite cloned options.
1924
+ * @returns {Object} The new benchmark instance.
1925
+ * @example
1926
+ *
1927
+ * var bizarro = bench.clone({
1928
+ * 'name': 'doppelganger'
1929
+ * });
1930
+ */
1931
+ function clone(options) {
1932
+ var me = this,
1933
+ result = new me.constructor(extend({}, me, options));
1934
+
1935
+ // correct the `options` object
1936
+ result.options = extend({}, me.options, options);
1937
+
1938
+ // copy own custom properties
1939
+ forOwn(me, function(value, key) {
1940
+ if (!hasKey(result, key)) {
1941
+ result[key] = deepClone(value);
1942
+ }
1943
+ });
1944
+ return result;
1945
+ }
1946
+
1947
+ /**
1948
+ * Determines if a benchmark is faster than another.
1949
+ * @memberOf Benchmark
1950
+ * @param {Object} other The benchmark to compare.
1951
+ * @returns {Number} Returns `-1` if slower, `1` if faster, and `0` if indeterminate.
1952
+ */
1953
+ function compare(other) {
1954
+ // unpaired two-sample t-test assuming equal variance
1955
+ // http://en.wikipedia.org/wiki/Student's_t-test
1956
+ // http://www.chem.utoronto.ca/coursenotes/analsci/StatsTutorial/12tailed.html
1957
+ var a = this.stats,
1958
+ b = other.stats,
1959
+ df = a.size + b.size - 2,
1960
+ pooled = (((a.size - 1) * a.variance) + ((b.size - 1) * b.variance)) / df,
1961
+ tstat = (a.mean - b.mean) / sqrt(pooled * (1 / a.size + 1 / b.size)),
1962
+ near = abs(1 - a.mean / b.mean) < 0.055 && a.rme < 3 && b.rme < 3;
1963
+
1964
+ // check if the means aren't close and the t-statistic is significant
1965
+ // (a larger `mean` indicates a slower benchmark)
1966
+ return !near && abs(tstat) > getCriticalValue(df) ? (tstat > 0 ? -1 : 1) : 0;
1967
+ }
1968
+
1969
+ /**
1970
+ * Reset properties and abort if running.
1971
+ * @memberOf Benchmark
1972
+ * @returns {Object} The benchmark instance.
1973
+ */
1974
+ function reset() {
1975
+ var changed,
1976
+ pair,
1977
+ me = this,
1978
+ source = extend({}, me.constructor.prototype, me.options),
1979
+ pairs = [[source, me]];
1980
+
1981
+ if (me.running && !calledBy.abort) {
1982
+ // no worries, `reset()` is called within `abort()`
1983
+ me.abort();
1984
+ me.aborted = source.aborted;
1985
+ }
1986
+ else {
1987
+ // a non-recursive solution to check if properties have changed
1988
+ // http://www.jslab.dk/articles/non.recursive.preorder.traversal.part4
1989
+ while ((pair = pairs.pop())) {
1990
+ forOwn(pair[0], function(value, key) {
1991
+ var other = pair[1][key];
1992
+ if (value && isClassOf(value, 'Object')) {
1993
+ pairs.push([value, other]);
1994
+ }
1995
+ else if (value !== other && !(value == null || isClassOf(value, 'Function'))) {
1996
+ pair[1][key] = value;
1997
+ changed = true;
1998
+ }
1999
+ });
2000
+ }
2001
+ if (changed) {
2002
+ me.emit('reset');
2003
+ }
2004
+ }
2005
+ return me;
2006
+ }
2007
+
2008
+ /**
2009
+ * Displays relevant benchmark information when coerced to a string.
2010
+ * @name toString
2011
+ * @memberOf Benchmark
2012
+ * @returns {String} A string representation of the benchmark instance.
2013
+ */
2014
+ function toStringBench() {
2015
+ var me = this,
2016
+ error = me.error,
2017
+ hz = me.hz,
2018
+ id = me.id,
2019
+ stats = me.stats,
2020
+ size = stats.size,
2021
+ pm = has.java ? '+/-' : '\xb1',
2022
+ result = me.name || (typeof id == 'number' ? '<Test #' + id + '>' : id);
2023
+
2024
+ if (error) {
2025
+ result += ': ' + join(error);
2026
+ } else {
2027
+ result += ' x ' + formatNumber(hz.toFixed(hz < 100 ? 2 : 0)) + ' ops/sec ' + pm +
2028
+ stats.rme.toFixed(2) + '% (' + size + ' run' + (size == 1 ? '' : 's') + ' sampled)';
2029
+ }
2030
+ return result;
2031
+ }
2032
+
2033
+ /*--------------------------------------------------------------------------*/
2034
+
2035
+ /**
2036
+ * Clocks the time taken to execute a test per cycle (secs).
2037
+ * @private
2038
+ * @param {Object} bench The benchmark instance.
2039
+ * @returns {Number} The time taken.
2040
+ */
2041
+ function clock() {
2042
+ var applet,
2043
+ options = Benchmark.options,
2044
+ template = { 'begin': 's$=new n$', 'end': 'r$=(new n$-s$)/1e3', 'uid': uid },
2045
+ timers = [{ 'ns': timer.ns, 'res': max(0.0015, getRes('ms')), 'unit': 'ms' }];
2046
+
2047
+ // lazy defined for hi-res timers
2048
+ clock = function(bench) {
2049
+ var deferred = bench instanceof Deferred && [bench, bench = bench.benchmark][0],
2050
+ host = bench._host || bench,
2051
+ fn = host.fn,
2052
+ fnArg = deferred ? getFirstArgument(fn, 'deferred') : '',
2053
+ stringable = isStringable(fn),
2054
+ decompilable = has.decompilation || stringable,
2055
+ source = {
2056
+ 'setup': getSource(host.setup, preprocess('m$.setup()')),
2057
+ 'fn': getSource(fn, preprocess('f$(' + fnArg + ')')),
2058
+ 'fnArg': fnArg,
2059
+ 'teardown': getSource(host.teardown, preprocess('m$.teardown()'))
2060
+ },
2061
+ compiled = fn.compiled,
2062
+ count = host.count = bench.count,
2063
+ id = host.id,
2064
+ isEmpty = !(source.fn || stringable),
2065
+ name = host.name || (typeof id == 'number' ? '<Test #' + id + '>' : id),
2066
+ ns = timer.ns,
2067
+ result = 0;
2068
+
2069
+ // init `minTime` if needed
2070
+ bench.minTime = host.minTime || (host.minTime = host.options.minTime = options.minTime);
2071
+
2072
+ // repair nanosecond timer
2073
+ // (some Chrome builds erase the `ns` variable after millions of executions)
2074
+ if (applet) {
2075
+ try {
2076
+ ns.nanoTime();
2077
+ } catch(e) {
2078
+ // use non-element to avoid issues with libs that augment them
2079
+ ns = timer.ns = new applet.Packages.nano;
2080
+ }
2081
+ }
2082
+
2083
+ if(!compiled) {
2084
+ // compile in setup/teardown functions and the test loop
2085
+ compiled = host.compiled = createFunction(preprocess('n$,t$'), interpolate(
2086
+ preprocess(deferred
2087
+ ? 'var d$=this,#{fnArg}=d$,r$=d$.resolve,m$=(m$=d$.benchmark)._host||m$,f$=m$.fn;' +
2088
+ 'if(!d$.cycles){d$.resolve=function(){d$.resolve=r$;r$.call(d$);' +
2089
+ 'if(d$.cycles==m$.count){#{teardown}\n}};#{setup}\nt$.start(d$);}#{fn}\nreturn{}'
2090
+ : 'var r$,s$,m$=this,f$=m$.fn,i$=m$.count;#{setup}\n#{begin};' +
2091
+ 'while(i$--){#{fn}\n}#{end};#{teardown}\nreturn{time:r$,uid:"#{uid}"}'),
2092
+ source
2093
+ ));
2094
+
2095
+ try {
2096
+ if (isEmpty) {
2097
+ // Firefox may remove dead code from Function#toString results
2098
+ // http://bugzil.la/536085
2099
+ throw new Error('The test, ' + name + ', is empty. This may be the result of dead code removal.');
2100
+ }
2101
+ else if (!deferred) {
2102
+ // pretest to determine if compiled code is exits early, usually by a
2103
+ // rogue `return` statement, by checking for a return object with the uid
2104
+ host.count = 1;
2105
+ compiled = (compiled.call(host, ns) || {}).uid == uid && compiled;
2106
+ host.count = count;
2107
+ }
2108
+ } catch(e) {
2109
+ compiled = false;
2110
+ bench.error = e || new Error(String(e));
2111
+ host.count = count;
2112
+ }
2113
+ // fallback when a test exits early or errors during pretest
2114
+ if (decompilable && !compiled && !deferred && !isEmpty) {
2115
+ compiled = createFunction(preprocess('n$'), interpolate(
2116
+ preprocess((bench.error && !stringable
2117
+ ? 'var r$,s$,m$=this,f$=m$.fn,i$=m$.count;'
2118
+ : 'function f$(){#{fn}\n}var r$,s$,i$=this.count;'
2119
+ ) + '#{setup}\n#{begin};while(i$--){f$()}#{end};#{teardown}\nreturn{time:r$}'),
2120
+ source
2121
+ ));
2122
+
2123
+ try {
2124
+ // pretest one more time to check for errors
2125
+ host.count = 1;
2126
+ compiled.call(host, ns);
2127
+ host.compiled = compiled;
2128
+ host.count = count;
2129
+ delete bench.error;
2130
+ }
2131
+ catch(e) {
2132
+ host.count = count;
2133
+ if (!bench.error) {
2134
+ host.compiled = compiled;
2135
+ bench.error = e || new Error(String(e));
2136
+ }
2137
+ }
2138
+ }
2139
+ }
2140
+ // if no errors run the full test loop
2141
+ if (!bench.error) {
2142
+ result = compiled.call(deferred || host, ns, timer).time;
2143
+ }
2144
+ return result;
2145
+ };
2146
+
2147
+ /*------------------------------------------------------------------------*/
2148
+
2149
+ /**
2150
+ * Gets the current timer's minimum resolution (secs).
2151
+ */
2152
+ function getRes(unit) {
2153
+ var measured,
2154
+ begin,
2155
+ count = 30,
2156
+ divisor = 1e3,
2157
+ ns = timer.ns,
2158
+ sample = [];
2159
+
2160
+ // get average smallest measurable time
2161
+ while (count--) {
2162
+ if (unit == 'us') {
2163
+ divisor = 1e6;
2164
+ if (ns.stop) {
2165
+ ns.start();
2166
+ while (!(measured = ns.microseconds())) { }
2167
+ } else {
2168
+ begin = timer.ns();
2169
+ while (!(measured = ns() - begin)) { }
2170
+ }
2171
+ }
2172
+ else if (unit == 'ns') {
2173
+ divisor = 1e9;
2174
+ begin = ns.nanoTime();
2175
+ while (!(measured = ns.nanoTime() - begin)) { }
2176
+ }
2177
+ else {
2178
+ begin = new ns;
2179
+ while (!(measured = new ns - begin)) { }
2180
+ }
2181
+ // check for broken timers (nanoTime may have issues)
2182
+ // http://alivebutsleepy.srnet.cz/unreliable-system-nanotime/
2183
+ if (measured > 0) {
2184
+ sample.push(measured);
2185
+ } else {
2186
+ sample.push(Infinity);
2187
+ break;
2188
+ }
2189
+ }
2190
+ // convert to seconds
2191
+ return getMean(sample) / divisor;
2192
+ }
2193
+
2194
+ /**
2195
+ * Replaces all occurrences of `$` with a unique number and
2196
+ * template tokens with content.
2197
+ */
2198
+ function preprocess(code) {
2199
+ return interpolate(code, template).replace(/\$/g, /\d+/.exec(uid));
2200
+ }
2201
+
2202
+ /*------------------------------------------------------------------------*/
2203
+
2204
+ // detect nanosecond support from a Java applet
2205
+ each(window.document && document.applets || [], function(element) {
2206
+ return !(timer.ns = applet = 'nanoTime' in element && element);
2207
+ });
2208
+
2209
+ // check type in case Safari returns an object instead of a number
2210
+ try {
2211
+ if (typeof timer.ns.nanoTime() == 'number') {
2212
+ timers.push({ 'ns': timer.ns, 'res': getRes('ns'), 'unit': 'ns' });
2213
+ }
2214
+ } catch(e) { }
2215
+
2216
+ // detect Chrome's microsecond timer:
2217
+ // enable benchmarking via the --enable-benchmarking command
2218
+ // line switch in at least Chrome 7 to use chrome.Interval
2219
+ try {
2220
+ if ((timer.ns = new (window.chrome || window.chromium).Interval)) {
2221
+ timers.push({ 'ns': timer.ns, 'res': getRes('us'), 'unit': 'us' });
2222
+ }
2223
+ } catch(e) { }
2224
+
2225
+ // detect Node's microtime module:
2226
+ // npm install microtime
2227
+ if ((timer.ns = (req('microtime') || { 'now': 0 }).now)) {
2228
+ timers.push({ 'ns': timer.ns, 'res': getRes('us'), 'unit': 'us' });
2229
+ }
2230
+
2231
+ // pick timer with highest resolution
2232
+ timer = reduce(timers, function(timer, other) {
2233
+ return other.res < timer.res ? other : timer;
2234
+ });
2235
+
2236
+ // remove unused applet
2237
+ if (timer.unit != 'ns' && applet) {
2238
+ applet = (applet.parentNode.removeChild(applet), null);
2239
+ }
2240
+ // error if there are no working timers
2241
+ if (timer.res == Infinity) {
2242
+ throw new Error('Benchmark.js was unable to find a working timer.');
2243
+ }
2244
+ // use API of chosen timer
2245
+ if (timer.unit == 'ns') {
2246
+ extend(template, {
2247
+ 'begin': 's$=n$.nanoTime()',
2248
+ 'end': 'r$=(n$.nanoTime()-s$)/1e9'
2249
+ });
2250
+ }
2251
+ else if (timer.unit == 'us') {
2252
+ extend(template, timer.ns.stop ? {
2253
+ 'begin': 's$=n$.start()',
2254
+ 'end': 'r$=n$.microseconds()/1e6'
2255
+ } : {
2256
+ 'begin': 's$=n$()',
2257
+ 'end': 'r$=(n$()-s$)/1e6'
2258
+ });
2259
+ }
2260
+
2261
+ // define `timer` methods
2262
+ timer.start = createFunction(preprocess('d$'),
2263
+ preprocess('var n$=this.ns,#{begin};d$.timeStamp=s$'));
2264
+
2265
+ timer.stop = createFunction(preprocess('d$'),
2266
+ preprocess('var n$=this.ns,s$=d$.timeStamp,#{end};d$.elapsed=r$'));
2267
+
2268
+ // resolve time span required to achieve a percent uncertainty of at most 1%
2269
+ // http://spiff.rit.edu/classes/phys273/uncert/uncert.html
2270
+ options.minTime || (options.minTime = max(timer.res / 2 / 0.01, 0.05));
2271
+ return clock.apply(null, arguments);
2272
+ }
2273
+
2274
+ /**
2275
+ * Computes stats on benchmark results.
2276
+ * @private
2277
+ * @param {Object} options The options object.
2278
+ */
2279
+ function compute(options) {
2280
+ options || (options = {});
2281
+
2282
+ var async = options.async,
2283
+ bench = options.benchmark,
2284
+ elapsed = 0,
2285
+ queue = [],
2286
+ sample = [],
2287
+ initCount = bench.initCount;
2288
+
2289
+ /**
2290
+ * Adds a number of clones to the queue.
2291
+ */
2292
+ function enqueue(count) {
2293
+ while (count--) {
2294
+ queue.push(bench.clone({
2295
+ '_host': bench,
2296
+ 'events': { 'start': [update], 'cycle': [update] }
2297
+ }));
2298
+ }
2299
+ }
2300
+
2301
+ /**
2302
+ * Updates the clone/host benchmarks to keep their data in sync.
2303
+ */
2304
+ function update(event) {
2305
+ var clone = this,
2306
+ cycles = clone.cycles,
2307
+ type = event.type;
2308
+
2309
+ if (bench.running) {
2310
+ if (type == 'cycle') {
2311
+ if (clone.error) {
2312
+ bench.abort();
2313
+ bench.error = clone.error;
2314
+ bench.emit('error');
2315
+ }
2316
+ else {
2317
+ // Note: the host's bench.count prop is updated in `clock()`
2318
+ bench.hz = clone.hz;
2319
+ bench.initCount = clone.initCount;
2320
+ bench.times.period = clone.times.period;
2321
+ if (cycles > bench.cycles) {
2322
+ bench.cycles = cycles;
2323
+ }
2324
+ }
2325
+ bench.emit(type);
2326
+ }
2327
+ else {
2328
+ // reached in clone's onStart
2329
+ // Note: clone.minTime prop is inited in `clock()`
2330
+ clone.count = bench.initCount;
2331
+ }
2332
+ } else if (bench.aborted) {
2333
+ clone.abort();
2334
+ }
2335
+ }
2336
+
2337
+ /**
2338
+ * Determines if more clones should be queued or if cycling should stop.
2339
+ */
2340
+ function evaluate(event, clone) {
2341
+ var mean,
2342
+ moe,
2343
+ rme,
2344
+ sd,
2345
+ sem,
2346
+ variance,
2347
+ now = +new Date,
2348
+ times = bench.times,
2349
+ done = bench.aborted,
2350
+ maxedOut = (elapsed += now - clone.times.timeStamp) / 1e3 > bench.maxTime,
2351
+ size = sample.push(clone.times.period),
2352
+ varOf = function(sum, x) { return sum + pow(x - mean, 2); };
2353
+
2354
+ // exit early for aborted or unclockable tests
2355
+ if (done || clone.hz == Infinity) {
2356
+ maxedOut = !(size = sample.length = queue.length = 0);
2357
+ }
2358
+ // set host values
2359
+ if (!done) {
2360
+ // sample mean (estimate of the population mean)
2361
+ mean = getMean(sample);
2362
+ // sample variance (estimate of the population variance)
2363
+ variance = reduce(sample, varOf, 0) / (size - 1) || 0;
2364
+ // sample standard deviation (estimate of the population standard deviation)
2365
+ sd = sqrt(variance);
2366
+ // standard error of the mean (aka the standard deviation of the sampling distribution of the sample mean)
2367
+ sem = sd / sqrt(size);
2368
+ // margin of error
2369
+ moe = sem * getCriticalValue(size - 1);
2370
+ // relative margin of error
2371
+ rme = (moe / mean) * 100 || 0;
2372
+
2373
+ extend(bench.stats, {
2374
+ 'moe': moe,
2375
+ 'rme': rme,
2376
+ 'sem': sem,
2377
+ 'deviation': sd,
2378
+ 'mean': mean,
2379
+ 'size': size,
2380
+ 'variance': variance
2381
+ });
2382
+
2383
+ // We exit early when the elapsed time exceeds the maximum time allowed
2384
+ // per benchmark. To prevent massive wait times, we do this even if the
2385
+ // minimum sample size has not been reached. We don't count cycle delays
2386
+ // toward the max time because delays may be increased by browsers that
2387
+ // clamp timeouts in inactive tabs.
2388
+ // https://developer.mozilla.org/en/window.setTimeout#Inactive_tabs
2389
+ if (maxedOut) {
2390
+ done = true;
2391
+ bench.running = false;
2392
+ bench.initCount = initCount;
2393
+ times.elapsed = (now - times.timeStamp) / 1e3;
2394
+ }
2395
+ if (bench.hz != Infinity) {
2396
+ times.period = mean;
2397
+ times.cycle = mean * bench.count;
2398
+ bench.hz = 1 / mean;
2399
+ }
2400
+ }
2401
+ // if time permits, increase sample size to reduce the margin of error
2402
+ if (queue.length < 2 && !maxedOut) {
2403
+ enqueue(1);
2404
+ }
2405
+ // stop the invoke cycle when done
2406
+ return !done;
2407
+ }
2408
+
2409
+ // init queue and begin
2410
+ enqueue(bench.minSamples);
2411
+ invoke(queue, {
2412
+ 'name': 'run',
2413
+ 'args': { 'async': async },
2414
+ 'queued': true,
2415
+ 'onCycle': evaluate,
2416
+ 'onComplete': function() {
2417
+ bench.emit('complete');
2418
+ }
2419
+ });
2420
+ }
2421
+
2422
+ /**
2423
+ * Cycles a benchmark until a run `count` can be established.
2424
+ * @private
2425
+ * @param {Object} options The options object.
2426
+ */
2427
+ function cycle(options) {
2428
+ options || (options = {});
2429
+
2430
+ var clocked,
2431
+ divisor,
2432
+ minTime,
2433
+ period,
2434
+ async = options.async,
2435
+ bench = options.benchmark,
2436
+ count = bench.count,
2437
+ deferred = options.deferred,
2438
+ times = bench.times;
2439
+
2440
+ // continue, if not aborted between cycles
2441
+ if (bench.running) {
2442
+ // host `minTime` is set to `Benchmark.options.minTime` in `clock()`
2443
+ bench.cycles++;
2444
+ clocked = deferred ? deferred.elapsed : clock(bench);
2445
+ minTime = bench.minTime;
2446
+
2447
+ if (bench.error) {
2448
+ bench.abort();
2449
+ bench.emit('error');
2450
+ }
2451
+ }
2452
+ // continue, if not errored
2453
+ if (bench.running) {
2454
+ // time taken to complete last test cycle
2455
+ times.cycle = clocked;
2456
+ // seconds per operation
2457
+ period = times.period = clocked / count;
2458
+ // ops per second
2459
+ bench.hz = 1 / period;
2460
+ // do we need to do another cycle?
2461
+ bench.running = clocked < minTime;
2462
+ // avoid working our way up to this next time
2463
+ bench.initCount = count;
2464
+
2465
+ if (bench.running) {
2466
+ // tests may clock at `0` when `initCount` is a small number,
2467
+ // to avoid that we set its count to something a bit higher
2468
+ if (!clocked && (divisor = divisors[bench.cycles]) != null) {
2469
+ count = floor(4e6 / divisor);
2470
+ }
2471
+ // calculate how many more iterations it will take to achive the `minTime`
2472
+ if (count <= bench.count) {
2473
+ count += Math.ceil((minTime - clocked) / period);
2474
+ }
2475
+ bench.running = count != Infinity;
2476
+ }
2477
+ }
2478
+ // should we exit early?
2479
+ if (bench.emit('cycle') === false) {
2480
+ bench.abort();
2481
+ }
2482
+ // figure out what to do next
2483
+ if (bench.running) {
2484
+ bench.count = count;
2485
+ if (deferred) {
2486
+ (bench._host || bench).compiled.call(deferred, timer.ns, timer);
2487
+ } else {
2488
+ call({
2489
+ 'async': async,
2490
+ 'benchmark': bench,
2491
+ 'fn': function() {
2492
+ cycle({ 'async': async, 'benchmark': bench });
2493
+ }
2494
+ });
2495
+ }
2496
+ } else {
2497
+ // fix TraceMonkey bug associated with clock fallbacks
2498
+ // http://bugzil.la/509069
2499
+ runScript('try{' + uid + '=1;delete ' + uid + '}catch(e){}');
2500
+ // done
2501
+ bench.emit('complete');
2502
+ }
2503
+ }
2504
+
2505
+ /**
2506
+ * Runs the benchmark.
2507
+ * @memberOf Benchmark
2508
+ * @param {Object} [options={}] Options object.
2509
+ * @returns {Object} The benchmark instance.
2510
+ * @example
2511
+ *
2512
+ * // basic usage
2513
+ * bench.run();
2514
+ *
2515
+ * // or with options
2516
+ * bench.run({ 'async': true });
2517
+ */
2518
+ function run(options) {
2519
+ var me = this,
2520
+ async = ((async = options && options.async) == null ? me.async : async) && has.timeout;
2521
+
2522
+ // set running to false so reset() won't call abort()
2523
+ me.running = false;
2524
+ me.reset();
2525
+ me.running = true;
2526
+
2527
+ me.count = me.initCount;
2528
+ me.times.timeStamp = +new Date;
2529
+ me.emit('start');
2530
+
2531
+ if (me._host) {
2532
+ if (me.defer) {
2533
+ Deferred(me);
2534
+ } else {
2535
+ cycle({ 'async': async, 'benchmark': me });
2536
+ }
2537
+ } else {
2538
+ compute({ 'async': async, 'benchmark': me });
2539
+ }
2540
+ return me;
2541
+ }
2542
+
2543
+ /*--------------------------------------------------------------------------*/
2544
+
2545
+ extend(Benchmark, {
2546
+
2547
+ /**
2548
+ * The version number.
2549
+ * @static
2550
+ * @memberOf Benchmark
2551
+ * @type String
2552
+ */
2553
+ 'version': '0.3.0',
2554
+
2555
+ /**
2556
+ * The default options copied by benchmark instances.
2557
+ * @static
2558
+ * @memberOf Benchmark
2559
+ * @type Object
2560
+ */
2561
+ 'options': {
2562
+
2563
+ /**
2564
+ * A flag to indicate that benchmark cycles will execute asynchronously by default.
2565
+ * @memberOf Benchmark.options
2566
+ * @type Boolean
2567
+ */
2568
+ 'async': false,
2569
+
2570
+ /**
2571
+ * A flag to indicate that the benchmark clock is deferred.
2572
+ * @memberOf Benchmark.options
2573
+ * @type Boolean
2574
+ */
2575
+ 'defer': false,
2576
+
2577
+ /**
2578
+ * The delay between test cycles (secs).
2579
+ * @memberOf Benchmark.options
2580
+ * @type Number
2581
+ */
2582
+ 'delay': 0.005,
2583
+
2584
+ /**
2585
+ * Displayed by Benchmark#toString when a `name` is not available (auto-generated if `null`).
2586
+ * @memberOf Benchmark.options
2587
+ * @type String|Null
2588
+ */
2589
+ 'id': null,
2590
+
2591
+ /**
2592
+ * The default number of times to execute a test on a benchmark's first cycle.
2593
+ * @memberOf Benchmark.options
2594
+ * @type Number
2595
+ */
2596
+ 'initCount': 1,
2597
+
2598
+ /**
2599
+ * The maximum time a benchmark is allowed to run before finishing (secs).
2600
+ * Note: Cycle delays aren't counted toward the maximum time.
2601
+ * @memberOf Benchmark.options
2602
+ * @type Number
2603
+ */
2604
+ 'maxTime': 5,
2605
+
2606
+ /**
2607
+ * The minimum sample size required to perform statistical analysis.
2608
+ * @memberOf Benchmark.options
2609
+ * @type Number
2610
+ */
2611
+ 'minSamples': 5,
2612
+
2613
+ /**
2614
+ * The time needed to reduce the percent uncertainty of measurement to 1% (secs).
2615
+ * @memberOf Benchmark.options
2616
+ * @type Number
2617
+ */
2618
+ 'minTime': 0,
2619
+
2620
+ /**
2621
+ * The name of the benchmark.
2622
+ * @memberOf Benchmark.options
2623
+ * @type String|Null
2624
+ */
2625
+ 'name': null
2626
+ },
2627
+
2628
+ /**
2629
+ * Platform object with properties describing things like browser name,
2630
+ * version, and operating system.
2631
+ * @static
2632
+ * @memberOf Benchmark
2633
+ * @type Object
2634
+ */
2635
+ 'platform': req('platform') || window.platform || {
2636
+
2637
+ /**
2638
+ * The platform description.
2639
+ * @memberOf Benchmark.platform
2640
+ * @type String
2641
+ */
2642
+ 'description': window.navigator && navigator.userAgent || null,
2643
+
2644
+ /**
2645
+ * The name of the browser layout engine.
2646
+ * @memberOf Benchmark.platform
2647
+ * @type String|Null
2648
+ */
2649
+ 'layout': null,
2650
+
2651
+ /**
2652
+ * The name of the product hosting the browser.
2653
+ * @memberOf Benchmark.platform
2654
+ * @type String|Null
2655
+ */
2656
+ 'product': null,
2657
+
2658
+ /**
2659
+ * The name of the browser/environment.
2660
+ * @memberOf Benchmark.platform
2661
+ * @type String|Null
2662
+ */
2663
+ 'name': null,
2664
+
2665
+ /**
2666
+ * The name of the product's manufacturer.
2667
+ * @memberOf Benchmark.platform
2668
+ * @type String|Null
2669
+ */
2670
+ 'manufacturer': null,
2671
+
2672
+ /**
2673
+ * The name of the operating system.
2674
+ * @memberOf Benchmark.platform
2675
+ * @type String|Null
2676
+ */
2677
+ 'os': null,
2678
+
2679
+ /**
2680
+ * The alpha/beta release indicator.
2681
+ * @memberOf Benchmark.platform
2682
+ * @type String|Null
2683
+ */
2684
+ 'prerelease': null,
2685
+
2686
+ /**
2687
+ * The browser/environment version.
2688
+ * @memberOf Benchmark.platform
2689
+ * @type String|Null
2690
+ */
2691
+ 'version': null,
2692
+
2693
+ /**
2694
+ * Return platform description when the platform object is coerced to a string.
2695
+ * @memberOf Benchmark.platform
2696
+ * @type Function
2697
+ * @returns {String} The platform description.
2698
+ */
2699
+ 'toString': function() {
2700
+ return this.description || '';
2701
+ }
2702
+ },
2703
+
2704
+ // clone objects
2705
+ 'deepClone': deepClone,
2706
+
2707
+ // iteration utility
2708
+ 'each': each,
2709
+
2710
+ // augment objects
2711
+ 'extend': extend,
2712
+
2713
+ // generic Array#filter
2714
+ 'filter': filter,
2715
+
2716
+ // generic Array#forEach
2717
+ 'forEach': forEach,
2718
+
2719
+ // generic own property iteration utility
2720
+ 'forOwn': forOwn,
2721
+
2722
+ // converts a number to a comma-separated string
2723
+ 'formatNumber': formatNumber,
2724
+
2725
+ // generic Object#hasOwnProperty
2726
+ // (trigger hasKey's lazy define before assigning it to Benchmark)
2727
+ 'hasKey': (hasKey(Benchmark, ''), hasKey),
2728
+
2729
+ // generic Array#indexOf
2730
+ 'indexOf': indexOf,
2731
+
2732
+ // invokes a method on each item in an array
2733
+ 'invoke': invoke,
2734
+
2735
+ // generic Array#join for arrays and objects
2736
+ 'join': join,
2737
+
2738
+ // generic Array#map
2739
+ 'map': map,
2740
+
2741
+ // retrieves a property value from each item in an array
2742
+ 'pluck': pluck,
2743
+
2744
+ // generic Array#reduce
2745
+ 'reduce': reduce
2746
+ });
2747
+
2748
+ /*--------------------------------------------------------------------------*/
2749
+
2750
+ extend(Benchmark.prototype, {
2751
+
2752
+ /**
2753
+ * The number of times a test was executed.
2754
+ * @memberOf Benchmark
2755
+ * @type Number
2756
+ */
2757
+ 'count': 0,
2758
+
2759
+ /**
2760
+ * The number of cycles performed while benchmarking.
2761
+ * @memberOf Benchmark
2762
+ * @type Number
2763
+ */
2764
+ 'cycles': 0,
2765
+
2766
+ /**
2767
+ * The number of executions per second.
2768
+ * @memberOf Benchmark
2769
+ * @type Number
2770
+ */
2771
+ 'hz': 0,
2772
+
2773
+ /**
2774
+ * The compiled test function.
2775
+ * @memberOf Benchmark
2776
+ * @type Function|String
2777
+ */
2778
+ 'compiled': null,
2779
+
2780
+ /**
2781
+ * The error object if the test failed.
2782
+ * @memberOf Benchmark
2783
+ * @type Object|Null
2784
+ */
2785
+ 'error': null,
2786
+
2787
+ /**
2788
+ * The test to benchmark.
2789
+ * @memberOf Benchmark
2790
+ * @type Function|String
2791
+ */
2792
+ 'fn': null,
2793
+
2794
+ /**
2795
+ * A flag to indicate if the benchmark is aborted.
2796
+ * @memberOf Benchmark
2797
+ * @type Boolean
2798
+ */
2799
+ 'aborted': false,
2800
+
2801
+ /**
2802
+ * A flag to indicate if the benchmark is running.
2803
+ * @memberOf Benchmark
2804
+ * @type Boolean
2805
+ */
2806
+ 'running': false,
2807
+
2808
+ /**
2809
+ * Alias of [`Benchmark#addListener`](#Benchmark:addListener).
2810
+ * @memberOf Benchmark, Benchmark.Suite
2811
+ * @type Function
2812
+ */
2813
+ 'on': addListener,
2814
+
2815
+ /**
2816
+ * Compiled into the test and executed immediately **before** the test loop.
2817
+ * @memberOf Benchmark
2818
+ * @type Function|String
2819
+ * @example
2820
+ *
2821
+ * // basic usage
2822
+ * var bench = Benchmark({
2823
+ * 'setup': function() {
2824
+ * var c = this.count,
2825
+ * element = document.getElementById('container');
2826
+ * while (c--) {
2827
+ * element.appendChild(document.createElement('div'));
2828
+ * }
2829
+ * },
2830
+ * 'fn': function() {
2831
+ * element.removeChild(element.lastChild);
2832
+ * }
2833
+ * });
2834
+ *
2835
+ * // compiles to something like:
2836
+ * var c = this.count,
2837
+ * element = document.getElementById('container');
2838
+ * while (c--) {
2839
+ * element.appendChild(document.createElement('div'));
2840
+ * }
2841
+ * var start = new Date;
2842
+ * while (count--) {
2843
+ * element.removeChild(element.lastChild);
2844
+ * }
2845
+ * var end = new Date - start;
2846
+ *
2847
+ * // or using strings
2848
+ * var bench = Benchmark({
2849
+ * 'setup': '\
2850
+ * var a = 0;\n\
2851
+ * (function() {\n\
2852
+ * (function() {\n\
2853
+ * (function() {',
2854
+ * 'fn': 'a += 1;',
2855
+ * 'teardown': '\
2856
+ * }())\n\
2857
+ * }())\n\
2858
+ * }())'
2859
+ * });
2860
+ *
2861
+ * // compiles to something like:
2862
+ * var a = 0;
2863
+ * (function() {
2864
+ * (function() {
2865
+ * (function() {
2866
+ * var start = new Date;
2867
+ * while (count--) {
2868
+ * a += 1;
2869
+ * }
2870
+ * var end = new Date - start;
2871
+ * }())
2872
+ * }())
2873
+ * }())
2874
+ */
2875
+ 'setup': noop,
2876
+
2877
+ /**
2878
+ * Compiled into the test and executed immediately **after** the test loop.
2879
+ * @memberOf Benchmark
2880
+ * @type Function|String
2881
+ */
2882
+ 'teardown': noop,
2883
+
2884
+ /**
2885
+ * An object of stats including mean, margin or error, and standard deviation.
2886
+ * @memberOf Benchmark
2887
+ * @type Object
2888
+ */
2889
+ 'stats': {
2890
+
2891
+ /**
2892
+ * The margin of error.
2893
+ * @memberOf Benchmark#stats
2894
+ * @type Number
2895
+ */
2896
+ 'moe': 0,
2897
+
2898
+ /**
2899
+ * The relative margin of error (expressed as a percentage of the mean).
2900
+ * @memberOf Benchmark#stats
2901
+ * @type Number
2902
+ */
2903
+ 'rme': 0,
2904
+
2905
+ /**
2906
+ * The standard error of the mean.
2907
+ * @memberOf Benchmark#stats
2908
+ * @type Number
2909
+ */
2910
+ 'sem': 0,
2911
+
2912
+ /**
2913
+ * The sample standard deviation.
2914
+ * @memberOf Benchmark#stats
2915
+ * @type Number
2916
+ */
2917
+ 'deviation': 0,
2918
+
2919
+ /**
2920
+ * The sample arithmetic mean.
2921
+ * @memberOf Benchmark#stats
2922
+ * @type Number
2923
+ */
2924
+ 'mean': 0,
2925
+
2926
+ /**
2927
+ * The sample size.
2928
+ * @memberOf Benchmark#stats
2929
+ * @type Number
2930
+ */
2931
+ 'size': 0,
2932
+
2933
+ /**
2934
+ * The sample variance.
2935
+ * @memberOf Benchmark#stats
2936
+ * @type Number
2937
+ */
2938
+ 'variance': 0
2939
+ },
2940
+
2941
+ /**
2942
+ * An object of timing data including cycle, elapsed, period, start, and stop.
2943
+ * @memberOf Benchmark
2944
+ * @type Object
2945
+ */
2946
+ 'times': {
2947
+
2948
+ /**
2949
+ * The time taken to complete the last cycle (secs).
2950
+ * @memberOf Benchmark#times
2951
+ * @type Number
2952
+ */
2953
+ 'cycle': 0,
2954
+
2955
+ /**
2956
+ * The time taken to complete the benchmark (secs).
2957
+ * @memberOf Benchmark#times
2958
+ * @type Number
2959
+ */
2960
+ 'elapsed': 0,
2961
+
2962
+ /**
2963
+ * The time taken to execute the test once (secs).
2964
+ * @memberOf Benchmark#times
2965
+ * @type Number
2966
+ */
2967
+ 'period': 0,
2968
+
2969
+ /**
2970
+ * A timestamp of when the benchmark started (ms).
2971
+ * @memberOf Benchmark#times
2972
+ * @type Number
2973
+ */
2974
+ 'timeStamp': 0
2975
+ },
2976
+
2977
+ // aborts benchmark (does not record times)
2978
+ 'abort': abort,
2979
+
2980
+ // registers a single listener
2981
+ 'addListener': addListener,
2982
+
2983
+ // creates a new benchmark using the same test and options
2984
+ 'clone': clone,
2985
+
2986
+ // compares benchmark's hertz with another
2987
+ 'compare': compare,
2988
+
2989
+ // executes listeners of a specified type
2990
+ 'emit': emit,
2991
+
2992
+ // removes all listeners of a specified type
2993
+ 'removeAllListeners': removeAllListeners,
2994
+
2995
+ // removes a single listener
2996
+ 'removeListener': removeListener,
2997
+
2998
+ // reset benchmark properties
2999
+ 'reset': reset,
3000
+
3001
+ // runs the benchmark
3002
+ 'run': run,
3003
+
3004
+ // pretty print benchmark info
3005
+ 'toString': toStringBench
3006
+ });
3007
+
3008
+ /*--------------------------------------------------------------------------*/
3009
+
3010
+ /**
3011
+ * The default options copied by suite instances.
3012
+ * @static
3013
+ * @memberOf Benchmark.Suite
3014
+ * @type Object
3015
+ */
3016
+ Suite.options = {
3017
+
3018
+ /**
3019
+ * The name of the suite.
3020
+ * @memberOf Benchmark.Suite.options
3021
+ * @type String|Null
3022
+ */
3023
+ 'name': null
3024
+ };
3025
+
3026
+ /*--------------------------------------------------------------------------*/
3027
+
3028
+ extend(Suite.prototype, {
3029
+
3030
+ /**
3031
+ * The number of benchmarks in the suite.
3032
+ * @memberOf Benchmark.Suite
3033
+ * @type Number
3034
+ */
3035
+ 'length': 0,
3036
+
3037
+ /**
3038
+ * A flag to indicate if the suite is aborted.
3039
+ * @memberOf Benchmark.Suite
3040
+ * @type Boolean
3041
+ */
3042
+ 'aborted': false,
3043
+
3044
+ /**
3045
+ * A flag to indicate if the suite is running.
3046
+ * @memberOf Benchmark.Suite
3047
+ * @type Boolean
3048
+ */
3049
+ 'running': false,
3050
+
3051
+ /**
3052
+ * An `Array#forEach` like method.
3053
+ * Callbacks may terminate the loop by explicitly returning `false`.
3054
+ * @memberOf Benchmark.Suite
3055
+ * @param {Function} callback The function called per iteration.
3056
+ * @returns {Object} The suite iterated over.
3057
+ */
3058
+ 'forEach': methodize(forEach),
3059
+
3060
+ /**
3061
+ * An `Array#indexOf` like method.
3062
+ * @memberOf Benchmark.Suite
3063
+ * @param {Mixed} value The value to search for.
3064
+ * @returns {Number} The index of the matched value or `-1`.
3065
+ */
3066
+ 'indexOf': methodize(indexOf),
3067
+
3068
+ /**
3069
+ * Invokes a method on all benchmarks in the suite.
3070
+ * @memberOf Benchmark.Suite
3071
+ * @param {String|Object} name The name of the method to invoke OR options object.
3072
+ * @param {Mixed} [arg1, arg2, ...] Arguments to invoke the method with.
3073
+ * @returns {Array} A new array of values returned from each method invoked.
3074
+ */
3075
+ 'invoke': methodize(invoke),
3076
+
3077
+ /**
3078
+ * Converts the array to a string.
3079
+ * @memberOf Benchmark.Suite
3080
+ * @param {String} [separator=','] A string to separate each element of the array.
3081
+ * @returns {String} The removed element.
3082
+ */
3083
+ 'join': [].join,
3084
+
3085
+ /**
3086
+ * An `Array#map` like method.
3087
+ * @memberOf Benchmark.Suite
3088
+ * @param {Function} callback The function called per iteration.
3089
+ * @returns {Array} A new array of values returned by the callback.
3090
+ */
3091
+ 'map': methodize(map),
3092
+
3093
+ /**
3094
+ * Retrieves the value of a specified property from all benchmarks in the suite.
3095
+ * @memberOf Benchmark.Suite
3096
+ * @param {String} property The property to pluck.
3097
+ * @returns {Array} A new array of property values.
3098
+ */
3099
+ 'pluck': methodize(pluck),
3100
+
3101
+ /**
3102
+ * Removes the last element of the host array and returns it.
3103
+ * @memberOf Benchmark.Suite
3104
+ * @returns {Mixed} The removed element.
3105
+ */
3106
+ 'pop': [].pop,
3107
+
3108
+ /**
3109
+ * Appends arguments to the end of the array.
3110
+ * @memberOf Benchmark.Suite
3111
+ * @returns {Number} The array length.
3112
+ */
3113
+ 'push': [].push,
3114
+
3115
+ /**
3116
+ * Sorts the elements of the host array.
3117
+ * @memberOf Benchmark.Suite
3118
+ * @param {Function} [compareFn=null] A function that defines the sort order.
3119
+ * @returns {Array} The sorted host array.
3120
+ */
3121
+ 'sort': [].sort,
3122
+
3123
+ /**
3124
+ * An `Array#reduce` like method.
3125
+ * @memberOf Benchmark.Suite
3126
+ * @param {Function} callback The function called per iteration.
3127
+ * @param {Mixed} accumulator Initial value of the accumulator.
3128
+ * @returns {Mixed} The accumulator.
3129
+ */
3130
+ 'reduce': methodize(reduce),
3131
+
3132
+ // aborts all benchmarks in the suite
3133
+ 'abort': abortSuite,
3134
+
3135
+ // adds a benchmark to the suite
3136
+ 'add': add,
3137
+
3138
+ // registers a single listener
3139
+ 'addListener': addListener,
3140
+
3141
+ // creates a new suite with cloned benchmarks
3142
+ 'clone': cloneSuite,
3143
+
3144
+ // executes listeners of a specified type
3145
+ 'emit': emit,
3146
+
3147
+ // creates a new suite of filtered benchmarks
3148
+ 'filter': filterSuite,
3149
+
3150
+ // alias of addListener
3151
+ 'on': addListener,
3152
+
3153
+ // removes all listeners of a specified type
3154
+ 'removeAllListeners': removeAllListeners,
3155
+
3156
+ // removes a single listener
3157
+ 'removeListener': removeListener,
3158
+
3159
+ // resets all benchmarks in the suite
3160
+ 'reset': resetSuite,
3161
+
3162
+ // runs all benchmarks in the suite
3163
+ 'run': runSuite,
3164
+
3165
+ // array methods
3166
+ 'concat': concat,
3167
+
3168
+ 'reverse': reverse,
3169
+
3170
+ 'shift': shift,
3171
+
3172
+ 'slice': slice,
3173
+
3174
+ 'splice': splice,
3175
+
3176
+ 'unshift': unshift
3177
+ });
3178
+
3179
+ /*--------------------------------------------------------------------------*/
3180
+
3181
+ extend(Deferred.prototype, {
3182
+
3183
+ /**
3184
+ * The deferred benchmark instance.
3185
+ * @memberOf Benchmark.Deferred
3186
+ * @type Object
3187
+ */
3188
+ 'benchmark': null,
3189
+
3190
+ /**
3191
+ * The number of deferred cycles performed while benchmarking.
3192
+ * @memberOf Benchmark.Deferred
3193
+ * @type Number
3194
+ */
3195
+ 'cycles': 0,
3196
+
3197
+ /**
3198
+ * The time taken to complete the deferred benchmark (secs).
3199
+ * @memberOf Benchmark.Deferred
3200
+ * @type Number
3201
+ */
3202
+ 'elapsed': 0,
3203
+
3204
+ /**
3205
+ * A timestamp of when the deferred benchmark started (ms).
3206
+ * @memberOf Benchmark.Deferred
3207
+ * @type Number
3208
+ */
3209
+ 'timeStamp': 0,
3210
+
3211
+ // cycles/completes the deferred benchmark
3212
+ 'resolve': resolve
3213
+ });
3214
+
3215
+ /*--------------------------------------------------------------------------*/
3216
+
3217
+ /**
3218
+ * The event type.
3219
+ * @memberOf Benchmark.Event
3220
+ * @type String
3221
+ */
3222
+ Event.prototype.type = '';
3223
+
3224
+ /*--------------------------------------------------------------------------*/
3225
+
3226
+ // expose Deferred, Event and Suite
3227
+ extend(Benchmark, {
3228
+ 'Deferred': Deferred,
3229
+ 'Event': Event,
3230
+ 'Suite': Suite
3231
+ });
3232
+
3233
+ // expose Benchmark
3234
+ if (freeExports) {
3235
+ // in Node.js or RingoJS v0.8.0+
3236
+ if (typeof module == 'object' && module && module.exports == freeExports) {
3237
+ (module.exports = Benchmark).Benchmark = Benchmark;
3238
+ }
3239
+ // in Narwhal or RingoJS v0.7.0-
3240
+ else {
3241
+ freeExports.Benchmark = Benchmark;
3242
+ }
3243
+ }
3244
+ // via curl.js or RequireJS
3245
+ else if (freeDefine) {
3246
+ define('benchmark', function() {
3247
+ return Benchmark;
3248
+ });
3249
+ }
3250
+ // in a browser or Rhino
3251
+ else {
3252
+ // use square bracket notation so Closure Compiler won't munge `Benchmark`
3253
+ // http://code.google.com/closure/compiler/docs/api-tutorial3.html#export
3254
+ window['Benchmark'] = Benchmark;
3255
+ }
3256
+
3257
+ // trigger clock's lazy define early to avoid a security error
3258
+ if (has.air) {
3259
+ clock({ 'fn': noop, 'count': 1, 'options': {} });
3260
+ }
3261
+ }(this));