traceur-rb 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (410) hide show
  1. checksums.yaml +8 -8
  2. data/README.md +2 -2
  3. data/lib/js/compile.js +7 -15
  4. data/lib/traceur.rb +2 -1
  5. data/lib/traceur/compilation_error.rb +27 -0
  6. data/lib/traceur/compiler.rb +4 -1
  7. data/lib/traceur/configuration.rb +1 -1
  8. data/lib/traceur/node/runner.rb +1 -1
  9. data/lib/traceur/version.rb +1 -1
  10. data/spec/examples/syntax_error.js +3 -0
  11. data/spec/integration/examples_spec.rb +6 -0
  12. data/vendor/node_modules/traceur/LICENSE +202 -0
  13. data/vendor/node_modules/traceur/README.md +5 -5
  14. data/vendor/node_modules/traceur/bin/traceur-runtime.js +1392 -623
  15. data/vendor/node_modules/traceur/bin/traceur.js +24749 -17990
  16. data/vendor/node_modules/traceur/node_modules/.bin/semver +2 -2
  17. data/vendor/node_modules/traceur/node_modules/commander/History.md +222 -0
  18. data/vendor/node_modules/traceur/node_modules/commander/Readme.md +127 -35
  19. data/vendor/node_modules/traceur/node_modules/commander/index.js +261 -93
  20. data/vendor/node_modules/traceur/node_modules/commander/package.json +41 -9
  21. data/vendor/node_modules/traceur/node_modules/glob/LICENSE +15 -0
  22. data/vendor/node_modules/traceur/node_modules/glob/README.md +357 -0
  23. data/vendor/node_modules/traceur/node_modules/glob/common.js +177 -0
  24. data/vendor/node_modules/traceur/node_modules/glob/glob.js +649 -0
  25. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/.eslintrc +17 -0
  26. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/LICENSE +15 -0
  27. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/README.md +37 -0
  28. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/inflight.js +44 -0
  29. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/node_modules/wrappy/LICENSE +15 -0
  30. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/node_modules/wrappy/README.md +36 -0
  31. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/node_modules/wrappy/package.json +34 -0
  32. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/node_modules/wrappy/test/basic.js +51 -0
  33. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/node_modules/wrappy/wrappy.js +33 -0
  34. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/package.json +61 -0
  35. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inflight/test.js +97 -0
  36. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inherits/LICENSE +16 -0
  37. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inherits/README.md +42 -0
  38. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inherits/inherits.js +1 -0
  39. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inherits/inherits_browser.js +23 -0
  40. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inherits/package.json +33 -0
  41. data/vendor/node_modules/traceur/node_modules/glob/node_modules/inherits/test.js +25 -0
  42. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/.npmignore +1 -0
  43. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/.travis.yml +4 -0
  44. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/LICENSE +23 -0
  45. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/README.md +216 -0
  46. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/benchmark.js +15 -0
  47. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/browser.js +1181 -0
  48. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/minimatch.js +845 -0
  49. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +2 -0
  50. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.travis.yml +3 -0
  51. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md +121 -0
  52. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +8 -0
  53. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js +191 -0
  54. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +2 -0
  55. data/vendor/node_modules/traceur/node_modules/{q-io/node_modules/collections → glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match}/.travis.yml +0 -0
  56. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +6 -0
  57. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md +80 -0
  58. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +5 -0
  59. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +38 -0
  60. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +73 -0
  61. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +56 -0
  62. data/vendor/node_modules/traceur/node_modules/{q-io/node_modules/url2 → glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map}/.travis.yml +1 -1
  63. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE +18 -0
  64. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown +62 -0
  65. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js +6 -0
  66. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js +13 -0
  67. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +83 -0
  68. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js +39 -0
  69. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +75 -0
  70. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js +32 -0
  71. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt +1075 -0
  72. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt +182 -0
  73. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js +9 -0
  74. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js +10 -0
  75. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh +24 -0
  76. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js +15 -0
  77. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/nested.js +16 -0
  78. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/order.js +10 -0
  79. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/pad.js +13 -0
  80. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js +7 -0
  81. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js +50 -0
  82. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/package.json +60 -0
  83. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/test/basic.js +399 -0
  84. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/test/brace-expand.js +45 -0
  85. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/test/defaults.js +274 -0
  86. data/vendor/node_modules/traceur/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js +8 -0
  87. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/LICENSE +27 -0
  88. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/README.md +51 -0
  89. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/node_modules/wrappy/LICENSE +15 -0
  90. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/node_modules/wrappy/README.md +36 -0
  91. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/node_modules/wrappy/package.json +34 -0
  92. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/node_modules/wrappy/test/basic.js +51 -0
  93. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/node_modules/wrappy/wrappy.js +33 -0
  94. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/once.js +21 -0
  95. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/package.json +42 -0
  96. data/vendor/node_modules/traceur/node_modules/glob/node_modules/once/test/once.js +23 -0
  97. data/vendor/node_modules/traceur/node_modules/glob/package.json +72 -0
  98. data/vendor/node_modules/traceur/node_modules/glob/sync.js +409 -0
  99. data/vendor/node_modules/traceur/node_modules/rsvp/.release.json +17 -0
  100. data/vendor/node_modules/traceur/node_modules/rsvp/CHANGELOG.md +165 -0
  101. data/vendor/node_modules/traceur/node_modules/rsvp/LICENSE +19 -0
  102. data/vendor/node_modules/traceur/node_modules/rsvp/README.md +364 -0
  103. data/vendor/node_modules/traceur/node_modules/rsvp/dist/rsvp.js +1671 -0
  104. data/vendor/node_modules/traceur/node_modules/rsvp/dist/rsvp.min.js +9 -0
  105. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp.js +66 -0
  106. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp.umd.js +50 -0
  107. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/-internal.js +265 -0
  108. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/all-settled.js +71 -0
  109. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/all.js +15 -0
  110. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/asap.js +109 -0
  111. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/config.js +28 -0
  112. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/defer.js +45 -0
  113. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/enumerator.js +125 -0
  114. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/events.js +201 -0
  115. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/filter.js +120 -0
  116. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/hash-settled.js +124 -0
  117. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/hash.js +94 -0
  118. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/instrument.js +41 -0
  119. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/map.js +99 -0
  120. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/node.js +281 -0
  121. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise-hash.js +51 -0
  122. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise.js +496 -0
  123. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise/all.js +52 -0
  124. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise/race.js +105 -0
  125. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise/reject.js +47 -0
  126. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/promise/resolve.js +49 -0
  127. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/race.js +15 -0
  128. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/reject.js +16 -0
  129. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/resolve.js +17 -0
  130. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/rethrow.js +46 -0
  131. data/vendor/node_modules/traceur/node_modules/rsvp/lib/rsvp/utils.js +39 -0
  132. data/vendor/node_modules/traceur/node_modules/rsvp/package.json +100 -0
  133. data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/README.md +9 -0
  134. data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/bower.json +22 -0
  135. data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/composer.json +18 -0
  136. data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/package.json +52 -0
  137. data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/rsvp.amd.js +1607 -0
  138. data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/rsvp.js +1566 -0
  139. data/vendor/node_modules/traceur/node_modules/rsvp/rsvp.js/rsvp.min.js +26 -0
  140. data/vendor/node_modules/traceur/node_modules/rsvp/vertx.js +1 -0
  141. data/vendor/node_modules/traceur/node_modules/semver/bin/semver +2 -2
  142. data/vendor/node_modules/traceur/node_modules/semver/package.json +4 -3
  143. data/vendor/node_modules/traceur/node_modules/semver/semver.browser.js +7 -0
  144. data/vendor/node_modules/traceur/node_modules/semver/semver.browser.js.gz +0 -0
  145. data/vendor/node_modules/traceur/node_modules/semver/semver.js +7 -0
  146. data/vendor/node_modules/traceur/node_modules/semver/semver.min.js +1 -1
  147. data/vendor/node_modules/traceur/node_modules/semver/semver.min.js.gz +0 -0
  148. data/vendor/node_modules/traceur/node_modules/semver/test/index.js +8 -4
  149. data/vendor/node_modules/traceur/node_modules/semver/test/ltr.js +2 -1
  150. data/vendor/node_modules/traceur/node_modules/source-map-support/.npmignore +1 -0
  151. data/vendor/node_modules/traceur/node_modules/{q-io/node_modules/mime/LICENSE → source-map-support/LICENSE.md} +7 -5
  152. data/vendor/node_modules/traceur/node_modules/source-map-support/README.md +165 -0
  153. data/vendor/node_modules/traceur/node_modules/source-map-support/amd-test/browser-source-map-support.js +89 -0
  154. data/vendor/node_modules/traceur/node_modules/source-map-support/amd-test/index.html +6 -0
  155. data/vendor/node_modules/traceur/node_modules/source-map-support/amd-test/require.js +36 -0
  156. data/vendor/node_modules/traceur/node_modules/source-map-support/amd-test/script.coffee +13 -0
  157. data/vendor/node_modules/traceur/node_modules/source-map-support/amd-test/script.js +24 -0
  158. data/vendor/node_modules/traceur/node_modules/source-map-support/amd-test/script.map +10 -0
  159. data/vendor/node_modules/traceur/node_modules/source-map-support/browser-source-map-support.js +89 -0
  160. data/vendor/node_modules/traceur/node_modules/source-map-support/browser-test/index.html +6 -0
  161. data/vendor/node_modules/traceur/node_modules/source-map-support/browser-test/script.coffee +12 -0
  162. data/vendor/node_modules/traceur/node_modules/source-map-support/browser-test/script.js +25 -0
  163. data/vendor/node_modules/traceur/node_modules/source-map-support/browser-test/script.map +10 -0
  164. data/vendor/node_modules/traceur/node_modules/source-map-support/build.js +69 -0
  165. data/vendor/node_modules/traceur/node_modules/source-map-support/header-test/index.html +6 -0
  166. data/vendor/node_modules/traceur/node_modules/source-map-support/header-test/script.coffee +12 -0
  167. data/vendor/node_modules/traceur/node_modules/source-map-support/header-test/script.js +25 -0
  168. data/vendor/node_modules/traceur/node_modules/source-map-support/header-test/script.map +10 -0
  169. data/vendor/node_modules/traceur/node_modules/source-map-support/header-test/server.js +45 -0
  170. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/.npmignore +2 -0
  171. data/vendor/node_modules/traceur/node_modules/{q-io → source-map-support/node_modules/source-map}/.travis.yml +1 -0
  172. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/CHANGELOG.md +121 -0
  173. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/LICENSE +28 -0
  174. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/Makefile.dryice.js +166 -0
  175. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/README.md +434 -0
  176. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/assert-shim.js +56 -0
  177. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/mini-require.js +152 -0
  178. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  179. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/prefix-utils.jsm +18 -0
  180. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/suffix-browser.js +8 -0
  181. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  182. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/suffix-utils.jsm +21 -0
  183. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/test-prefix.js +8 -0
  184. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/build/test-suffix.js +3 -0
  185. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map.js +8 -0
  186. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/array-set.js +97 -0
  187. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
  188. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/base64.js +42 -0
  189. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/binary-search.js +81 -0
  190. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/source-map-consumer.js +478 -0
  191. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/source-map-generator.js +380 -0
  192. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/source-node.js +371 -0
  193. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/lib/source-map/util.js +205 -0
  194. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  195. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/node_modules/amdefine/README.md +171 -0
  196. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  197. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/node_modules/amdefine/intercept.js +36 -0
  198. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/node_modules/amdefine/package.json +37 -0
  199. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/package.json +142 -0
  200. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/run-tests.js +62 -0
  201. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-api.js +26 -0
  202. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-array-set.js +104 -0
  203. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
  204. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-base64.js +35 -0
  205. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  206. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-dog-fooding.js +72 -0
  207. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-source-map-consumer.js +451 -0
  208. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-source-map-generator.js +417 -0
  209. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/test-source-node.js +365 -0
  210. data/vendor/node_modules/traceur/node_modules/source-map-support/node_modules/source-map/test/source-map/util.js +161 -0
  211. data/vendor/node_modules/traceur/node_modules/source-map-support/package.json +52 -0
  212. data/vendor/node_modules/traceur/node_modules/source-map-support/source-map-support.js +381 -0
  213. data/vendor/node_modules/traceur/node_modules/source-map-support/test.js +359 -0
  214. data/vendor/node_modules/traceur/package.json +234 -20
  215. data/vendor/node_modules/traceur/src/node/NodeCompiler.js +78 -0
  216. data/vendor/node_modules/traceur/src/node/System.js +32 -5
  217. data/vendor/node_modules/traceur/src/node/api.js +28 -93
  218. data/vendor/node_modules/traceur/src/node/command.js +84 -19
  219. data/vendor/node_modules/traceur/src/node/compileAllJsFilesInDir.js +40 -0
  220. data/vendor/node_modules/traceur/src/node/interpreter.js +11 -8
  221. data/vendor/node_modules/traceur/src/node/recursiveModuleCompile.js +171 -0
  222. data/vendor/node_modules/traceur/src/node/require.js +7 -21
  223. data/vendor/node_modules/traceur/src/node/to-amd-compiler.js +2 -7
  224. data/vendor/node_modules/traceur/src/node/to-closure-compiler.js +28 -0
  225. data/vendor/node_modules/traceur/src/node/to-commonjs-compiler.js +3 -7
  226. data/vendor/node_modules/traceur/src/node/traceur.js +1 -1
  227. metadata +196 -190
  228. data/vendor/node_modules/traceur/node_modules/q-io/.npmignore +0 -1
  229. data/vendor/node_modules/traceur/node_modules/q-io/CHANGES.md +0 -122
  230. data/vendor/node_modules/traceur/node_modules/q-io/LICENSE +0 -19
  231. data/vendor/node_modules/traceur/node_modules/q-io/README.md +0 -928
  232. data/vendor/node_modules/traceur/node_modules/q-io/buffer-stream.js +0 -59
  233. data/vendor/node_modules/traceur/node_modules/q-io/coverage-report.js +0 -44
  234. data/vendor/node_modules/traceur/node_modules/q-io/deprecate.js +0 -51
  235. data/vendor/node_modules/traceur/node_modules/q-io/fs-boot.js +0 -307
  236. data/vendor/node_modules/traceur/node_modules/q-io/fs-common.js +0 -499
  237. data/vendor/node_modules/traceur/node_modules/q-io/fs-mock.js +0 -547
  238. data/vendor/node_modules/traceur/node_modules/q-io/fs-root.js +0 -105
  239. data/vendor/node_modules/traceur/node_modules/q-io/fs.js +0 -355
  240. data/vendor/node_modules/traceur/node_modules/q-io/fs2http.js +0 -65
  241. data/vendor/node_modules/traceur/node_modules/q-io/http-apps.js +0 -152
  242. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/chain.js +0 -24
  243. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/content.js +0 -93
  244. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/cookie.js +0 -154
  245. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/decorators.js +0 -178
  246. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/fs.js +0 -417
  247. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/html.js +0 -58
  248. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/json.js +0 -78
  249. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/negotiate.js +0 -120
  250. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/proxy.js +0 -27
  251. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/redirect.js +0 -209
  252. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/route.js +0 -125
  253. data/vendor/node_modules/traceur/node_modules/q-io/http-apps/status.js +0 -175
  254. data/vendor/node_modules/traceur/node_modules/q-io/http-cookie.js +0 -75
  255. data/vendor/node_modules/traceur/node_modules/q-io/http.js +0 -378
  256. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/.npmignore +0 -11
  257. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/CHANGES.md +0 -78
  258. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/LICENSE.md +0 -21
  259. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/README.md +0 -1285
  260. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/collections.js +0 -22
  261. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/dict.js +0 -142
  262. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/fast-map.js +0 -57
  263. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/fast-set.js +0 -183
  264. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/generic-collection.js +0 -261
  265. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/generic-map.js +0 -186
  266. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/generic-order.js +0 -55
  267. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/generic-set.js +0 -59
  268. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/heap.js +0 -236
  269. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/iterator.js +0 -371
  270. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/list.js +0 -435
  271. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/listen/array-changes.js +0 -247
  272. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/listen/map-changes.js +0 -147
  273. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/listen/property-changes.js +0 -448
  274. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/listen/range-changes.js +0 -139
  275. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/lru-map.js +0 -79
  276. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/lru-set.js +0 -142
  277. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/map.js +0 -60
  278. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/multi-map.js +0 -41
  279. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/node_modules/weak-map/package.json +0 -12
  280. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/node_modules/weak-map/sync +0 -7
  281. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/node_modules/weak-map/sync.patch +0 -48
  282. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/node_modules/weak-map/weak-map.js +0 -590
  283. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/package.json +0 -49
  284. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/set.js +0 -173
  285. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim-array.js +0 -274
  286. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim-function.js +0 -59
  287. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim-object.js +0 -538
  288. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim-regexp.js +0 -14
  289. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/shim.js +0 -6
  290. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-array-map.js +0 -49
  291. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-array-set.js +0 -51
  292. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-array.js +0 -269
  293. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-map.js +0 -61
  294. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/sorted-set.js +0 -736
  295. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/tree-log.js +0 -40
  296. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/collections/weak-map.js +0 -1
  297. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/README.md +0 -66
  298. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/mime.js +0 -114
  299. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/package.json +0 -35
  300. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/test.js +0 -84
  301. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/types/mime.types +0 -1588
  302. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mime/types/node.types +0 -77
  303. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/CHANGES +0 -15
  304. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/LICENSE +0 -19
  305. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/README +0 -96
  306. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/lib/mimeparse.js +0 -166
  307. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/mimeparse/package.json +0 -43
  308. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/CONTRIBUTING.md +0 -40
  309. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/LICENSE +0 -19
  310. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/README.md +0 -813
  311. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/benchmark/compare-with-callbacks.js +0 -71
  312. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/benchmark/scenarios.js +0 -36
  313. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/package.json +0 -93
  314. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/q.js +0 -1937
  315. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/q/queue.js +0 -35
  316. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/.gitmodules +0 -6
  317. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/History.md +0 -36
  318. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/Makefile +0 -7
  319. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/Readme.md +0 -38
  320. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/benchmark.js +0 -32
  321. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/examples.js +0 -39
  322. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/index.js +0 -2
  323. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/lib/querystring.js +0 -123
  324. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/package.json +0 -19
  325. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/.gitmodules +0 -3
  326. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/.npmignore +0 -3
  327. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/History.md +0 -128
  328. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/Makefile +0 -53
  329. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/Readme.md +0 -61
  330. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/bin/expresso +0 -856
  331. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/api.html +0 -1080
  332. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/index.html +0 -377
  333. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/index.md +0 -290
  334. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/layout/foot.html +0 -3
  335. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/docs/layout/head.html +0 -42
  336. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/lib/bar.js +0 -4
  337. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/lib/foo.js +0 -16
  338. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/package.json +0 -12
  339. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/assert.test.js +0 -91
  340. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/async.test.js +0 -12
  341. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/bar.test.js +0 -13
  342. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/foo.test.js +0 -14
  343. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/http.test.js +0 -146
  344. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/serial/async.test.js +0 -39
  345. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/expresso/test/serial/http.test.js +0 -48
  346. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/.gitmodules +0 -3
  347. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/History.md +0 -22
  348. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/Makefile +0 -6
  349. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/Readme.md +0 -248
  350. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/examples/runner.js +0 -53
  351. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/index.js +0 -2
  352. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/lib/eql.js +0 -91
  353. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/lib/should.js +0 -548
  354. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/package.json +0 -8
  355. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/support/should/test/should.test.js +0 -358
  356. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/qs/test/querystring.test.js +0 -133
  357. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/.npmignore +0 -3
  358. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/LICENSE.md +0 -20
  359. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/README.md +0 -33
  360. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/package.json +0 -37
  361. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/test/url2-spec.js +0 -125
  362. data/vendor/node_modules/traceur/node_modules/q-io/node_modules/url2/url2.js +0 -151
  363. data/vendor/node_modules/traceur/node_modules/q-io/package.json +0 -51
  364. data/vendor/node_modules/traceur/node_modules/q-io/reader.js +0 -133
  365. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/boot-directory-spec.js +0 -47
  366. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/contains-spec.js +0 -11
  367. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/fixtures/hello.txt +0 -1
  368. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/issues/1-spec.js +0 -33
  369. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/make-tree-spec.js +0 -92
  370. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/append-spec.js +0 -41
  371. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/copy-tree-spec.js +0 -57
  372. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/fixture/hello.txt +0 -1
  373. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/link-spec.js +0 -70
  374. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/make-tree-spec.js +0 -109
  375. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/merge-spec.js +0 -67
  376. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/move-spec.js +0 -219
  377. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/object-spec.js +0 -20
  378. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/range-spec.js +0 -26
  379. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/read-spec.js +0 -40
  380. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/remove-directory-spec.js +0 -37
  381. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/remove-tree-spec.js +0 -39
  382. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/root-spec.js +0 -32
  383. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/stat-spec.js +0 -26
  384. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/symbolic-link-spec.js +0 -86
  385. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/working-directory-spec.js +0 -31
  386. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/mock/write-spec.js +0 -73
  387. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/range-spec.js +0 -23
  388. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/range-spec.txt +0 -1
  389. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/read-spec.js +0 -22
  390. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/relative-spec.js +0 -25
  391. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/reroot-spec.js +0 -45
  392. data/vendor/node_modules/traceur/node_modules/q-io/spec/fs/write-spec.js +0 -38
  393. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/cookie-spec.js +0 -52
  394. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/directory-list-spec.js +0 -86
  395. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/fixtures/01234.txt +0 -1
  396. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/fixtures/1234.txt +0 -1
  397. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/fixtures/5678.txt +0 -0
  398. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/fixtures/9012/3456.txt +0 -0
  399. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/hosts-spec.js +0 -49
  400. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/interpret-range-spec.js +0 -47
  401. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/partial-range-spec.js +0 -186
  402. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/proxy-spec.js +0 -82
  403. data/vendor/node_modules/traceur/node_modules/q-io/spec/http-apps/symbolic-link-spec.js +0 -110
  404. data/vendor/node_modules/traceur/node_modules/q-io/spec/http/agent-spec.js +0 -96
  405. data/vendor/node_modules/traceur/node_modules/q-io/spec/http/basic-spec.js +0 -96
  406. data/vendor/node_modules/traceur/node_modules/q-io/spec/lib/jasmine-promise.js +0 -42
  407. data/vendor/node_modules/traceur/node_modules/q-io/writer.js +0 -111
  408. data/vendor/node_modules/traceur/src/node/compile-single-file.js +0 -69
  409. data/vendor/node_modules/traceur/src/node/compiler.js +0 -116
  410. data/vendor/node_modules/traceur/src/node/inline-module.js +0 -149
@@ -1,736 +0,0 @@
1
- "use strict";
2
-
3
- module.exports = SortedSet;
4
-
5
- var Shim = require("./shim");
6
- var GenericCollection = require("./generic-collection");
7
- var GenericSet = require("./generic-set");
8
- var PropertyChanges = require("./listen/property-changes");
9
- var RangeChanges = require("./listen/range-changes");
10
- var TreeLog = require("./tree-log");
11
-
12
- function SortedSet(values, equals, compare, getDefault) {
13
- if (!(this instanceof SortedSet)) {
14
- return new SortedSet(values, equals, compare, getDefault);
15
- }
16
- this.contentEquals = equals || Object.equals;
17
- this.contentCompare = compare || Object.compare;
18
- this.getDefault = getDefault || Function.noop;
19
- this.root = null;
20
- this.length = 0;
21
- this.addEach(values);
22
- }
23
-
24
- // hack so require("sorted-set").SortedSet will work in MontageJS
25
- SortedSet.SortedSet = SortedSet;
26
-
27
- Object.addEach(SortedSet.prototype, GenericCollection.prototype);
28
- Object.addEach(SortedSet.prototype, GenericSet.prototype);
29
- Object.addEach(SortedSet.prototype, PropertyChanges.prototype);
30
- Object.addEach(SortedSet.prototype, RangeChanges.prototype);
31
-
32
- SortedSet.prototype.constructClone = function (values) {
33
- return new this.constructor(
34
- values,
35
- this.contentEquals,
36
- this.contentCompare,
37
- this.getDefault
38
- );
39
- };
40
-
41
- SortedSet.prototype.has = function (value) {
42
- if (this.root) {
43
- this.splay(value);
44
- return this.contentEquals(value, this.root.value);
45
- } else {
46
- return false;
47
- }
48
- };
49
-
50
- SortedSet.prototype.get = function (value) {
51
- if (this.root) {
52
- this.splay(value);
53
- if (this.contentEquals(value, this.root.value)) {
54
- return this.root.value;
55
- }
56
- }
57
- return this.getDefault(value);
58
- };
59
-
60
- SortedSet.prototype.add = function (value) {
61
- var node = new this.Node(value);
62
- if (this.root) {
63
- this.splay(value);
64
- if (!this.contentEquals(value, this.root.value)) {
65
- var comparison = this.contentCompare(value, this.root.value);
66
- if (comparison === 0) {
67
- throw new Error("SortedSet cannot contain incomparable but inequal values: " + value + " and " + this.root.value);
68
- }
69
- if (this.dispatchesRangeChanges) {
70
- this.dispatchBeforeRangeChange([value], [], this.root.index);
71
- }
72
- if (comparison < 0) {
73
- // rotate right
74
- // R N
75
- // / \ -> / \
76
- // l r l R
77
- // : : : \
78
- // r
79
- // :
80
- node.right = this.root;
81
- node.left = this.root.left;
82
- this.root.left = null;
83
- this.root.touch();
84
- } else {
85
- // rotate left
86
- // R N
87
- // / \ -> / \
88
- // l r R r
89
- // : : / :
90
- // l
91
- // :
92
- node.left = this.root;
93
- node.right = this.root.right;
94
- this.root.right = null;
95
- this.root.touch();
96
- }
97
- node.touch();
98
- this.root = node;
99
- this.length++;
100
- if (this.dispatchesRangeChanges) {
101
- this.dispatchRangeChange([value], [], this.root.index);
102
- }
103
- return true;
104
- }
105
- } else {
106
- if (this.dispatchesRangeChanges) {
107
- this.dispatchBeforeRangeChange([value], [], 0);
108
- }
109
- this.root = node;
110
- this.length++;
111
- if (this.dispatchesRangeChanges) {
112
- this.dispatchRangeChange([value], [], 0);
113
- }
114
- return true;
115
- }
116
- return false;
117
- };
118
-
119
- SortedSet.prototype['delete'] = function (value) {
120
- if (this.root) {
121
- this.splay(value);
122
- if (this.contentEquals(value, this.root.value)) {
123
- var index = this.root.index;
124
- if (this.dispatchesRangeChanges) {
125
- this.dispatchBeforeRangeChange([], [value], index);
126
- }
127
- if (!this.root.left) {
128
- this.root = this.root.right;
129
- } else {
130
- // remove the right side of the tree,
131
- var right = this.root.right;
132
- this.root = this.root.left;
133
- // the tree now only contains the left side of the tree, so all
134
- // values are less than the value deleted.
135
- // splay so that the root has an empty right child
136
- this.splay(value);
137
- // put the right side of the tree back
138
- this.root.right = right;
139
- }
140
- this.length--;
141
- if (this.root) {
142
- this.root.touch();
143
- }
144
- if (this.dispatchesRangeChanges) {
145
- this.dispatchRangeChange([], [value], index);
146
- }
147
- return true;
148
- }
149
- }
150
- return false;
151
- };
152
-
153
- SortedSet.prototype.indexOf = function (value) {
154
- if (this.root) {
155
- this.splay(value);
156
- if (this.contentEquals(value, this.root.value)) {
157
- return this.root.index;
158
- }
159
- }
160
- return -1;
161
- };
162
-
163
- SortedSet.prototype.find = function (value) {
164
- if (this.root) {
165
- this.splay(value);
166
- if (this.contentEquals(value, this.root.value)) {
167
- return this.root;
168
- }
169
- }
170
- };
171
-
172
- SortedSet.prototype.findGreatest = function (at) {
173
- if (this.root) {
174
- at = at || this.root;
175
- while (at.right) {
176
- at = at.right;
177
- }
178
- return at;
179
- }
180
- };
181
-
182
- SortedSet.prototype.findLeast = function (at) {
183
- if (this.root) {
184
- at = at || this.root;
185
- while (at.left) {
186
- at = at.left;
187
- }
188
- return at;
189
- }
190
- };
191
-
192
- SortedSet.prototype.findGreatestLessThanOrEqual = function (value) {
193
- if (this.root) {
194
- this.splay(value);
195
- // assert root.value <= value
196
- return this.root;
197
- }
198
- };
199
-
200
- SortedSet.prototype.findGreatestLessThan = function (value) {
201
- if (this.root) {
202
- this.splay(value);
203
- // assert root.value <= value
204
- return this.root.getPrevious();
205
- }
206
- };
207
-
208
- SortedSet.prototype.findLeastGreaterThanOrEqual = function (value) {
209
- if (this.root) {
210
- this.splay(value);
211
- // assert root.value <= value
212
- var comparison = this.contentCompare(value, this.root.value);
213
- if (comparison === 0) {
214
- return this.root;
215
- } else {
216
- return this.root.getNext();
217
- }
218
- }
219
- };
220
-
221
- SortedSet.prototype.findLeastGreaterThan = function (value) {
222
- if (this.root) {
223
- this.splay(value);
224
- // assert root.value <= value
225
- var comparison = this.contentCompare(value, this.root.value);
226
- return this.root.getNext();
227
- }
228
- };
229
-
230
- SortedSet.prototype.pop = function () {
231
- if (this.root) {
232
- var found = this.findGreatest();
233
- this["delete"](found.value);
234
- return found.value;
235
- }
236
- };
237
-
238
- SortedSet.prototype.shift = function () {
239
- if (this.root) {
240
- var found = this.findLeast();
241
- this["delete"](found.value);
242
- return found.value;
243
- }
244
- };
245
-
246
- SortedSet.prototype.push = function () {
247
- this.addEach(arguments);
248
- };
249
-
250
- SortedSet.prototype.unshift = function () {
251
- this.addEach(arguments);
252
- };
253
-
254
- SortedSet.prototype.slice = function (start, end) {
255
- var temp;
256
- start = start || 0;
257
- end = end || this.length;
258
- if (start < 0) {
259
- start += this.length;
260
- }
261
- if (end < 0) {
262
- end += this.length;
263
- }
264
- var sliced = [];
265
- if (this.root) {
266
- this.splayIndex(start);
267
- while (this.root.index < end) {
268
- sliced.push(this.root.value);
269
- if (!this.root.right) {
270
- break;
271
- }
272
- this.splay(this.root.getNext().value);
273
- }
274
- }
275
- return sliced;
276
- };
277
-
278
- SortedSet.prototype.splice = function (at, length /*...plus*/) {
279
- return this.swap(at, length, Array.prototype.slice.call(arguments, 2));
280
- };
281
-
282
- SortedSet.prototype.swap = function (start, length, plus) {
283
- if (start === undefined && length === undefined) {
284
- return [];
285
- }
286
- start = start || 0;
287
- if (start < 0) {
288
- start += this.length;
289
- }
290
- if (length === undefined) {
291
- length = Infinity;
292
- }
293
- var swapped = [];
294
-
295
- if (this.root) {
296
-
297
- // start
298
- this.splayIndex(start);
299
-
300
- // minus length
301
- for (var i = 0; i < length; i++) {
302
- swapped.push(this.root.value);
303
- var next = this.root.getNext();
304
- this["delete"](this.root.value);
305
- if (!next) {
306
- break;
307
- }
308
- this.splay(next.value);
309
- }
310
- }
311
-
312
- // plus
313
- this.addEach(plus);
314
-
315
- return swapped;
316
- };
317
-
318
- // This is the simplified top-down splaying algorithm from: "Self-adjusting
319
- // Binary Search Trees" by Sleator and Tarjan guarantees that the root.value <=
320
- // value if root exists
321
- // - as described in https://github.com/hij1nx/forest
322
- SortedSet.prototype.splay = function (value) {
323
- var stub, left, right, temp, root, history;
324
-
325
- if (!this.root) {
326
- return;
327
- }
328
-
329
- // Create a stub node. The use of the stub node is a bit
330
- // counter-intuitive: The right child of the stub node will hold the L tree
331
- // of the algorithm. The left child of the stub node will hold the R tree
332
- // of the algorithm. Using a stub node, left and right will always be
333
- // nodes and we avoid special cases.
334
- // - http://code.google.com/p/v8/source/browse/branches/bleeding_edge/src/splay-tree-inl.h
335
- stub = left = right = new this.Node();
336
- // The history is an upside down tree used to propagate new tree sizes back
337
- // up the left and right arms of a traversal. The right children of the
338
- // transitive left side of the tree will be former roots while linking
339
- // left. The left children of the transitive walk to the right side of the
340
- // history tree will all be previous roots from linking right. The last
341
- // node of the left and right traversal will each become a child of the new
342
- // root.
343
- history = new this.Node();
344
- root = this.root;
345
-
346
- while (true) {
347
- var comparison = this.contentCompare(value, root.value);
348
- if (comparison < 0) {
349
- if (root.left) {
350
- if (this.contentCompare(value, root.left.value) < 0) {
351
- // rotate right
352
- // Root L(temp)
353
- // / \ / \
354
- // L(temp) R LL Root
355
- // / \ / \
356
- // LL LR LR R
357
- temp = root.left;
358
- root.left = temp.right;
359
- root.touch();
360
- temp.right = root;
361
- temp.touch();
362
- root = temp;
363
- if (!root.left) {
364
- break;
365
- }
366
- }
367
- // remember former root for repropagating length
368
- temp = new Node();
369
- temp.right = root;
370
- temp.left = history.left;
371
- history.left = temp;
372
- // link left
373
- right.left = root;
374
- right.touch();
375
- right = root;
376
- root = root.left;
377
- } else {
378
- break;
379
- }
380
- } else if (comparison > 0) {
381
- if (root.right) {
382
- if (this.contentCompare(value, root.right.value) > 0) {
383
- // rotate left
384
- // Root L(temp)
385
- // / \ / \
386
- // L(temp) R LL Root
387
- // / \ / \
388
- // LL LR LR R
389
- temp = root.right;
390
- root.right = temp.left;
391
- root.touch();
392
- temp.left = root;
393
- temp.touch();
394
- root = temp;
395
- if (!root.right) {
396
- break;
397
- }
398
- }
399
- // remember former root for repropagating length
400
- temp = new Node();
401
- temp.left = root;
402
- temp.right = history.right;
403
- history.right = temp;
404
- // link right
405
- left.right = root;
406
- left.touch();
407
- left = root;
408
- root = root.right;
409
- } else {
410
- break;
411
- }
412
- } else { // equal or incomparable
413
- break;
414
- }
415
- }
416
-
417
- // reassemble
418
- left.right = root.left;
419
- left.touch();
420
- right.left = root.right;
421
- right.touch();
422
- root.left = stub.right;
423
- root.right = stub.left;
424
-
425
- // propagate new lengths
426
- while (history.left) {
427
- history.left.right.touch();
428
- history.left = history.left.left;
429
- }
430
- while (history.right) {
431
- history.right.left.touch();
432
- history.right = history.right.right;
433
- }
434
- root.touch();
435
-
436
- this.root = root;
437
- };
438
-
439
- // an internal utility for splaying a node based on its index
440
- SortedSet.prototype.splayIndex = function (index) {
441
- if (this.root) {
442
- var at = this.root;
443
- var atIndex = this.root.index;
444
-
445
- while (atIndex !== index) {
446
- if (atIndex > index && at.left) {
447
- at = at.left;
448
- atIndex -= 1 + (at.right ? at.right.length : 0);
449
- } else if (atIndex < index && at.right) {
450
- at = at.right;
451
- atIndex += 1 + (at.left ? at.left.length : 0);
452
- } else {
453
- break;
454
- }
455
- }
456
-
457
- this.splay(at.value);
458
-
459
- return this.root.index === index;
460
- }
461
- return false;
462
- };
463
-
464
- SortedSet.prototype.reduce = function (callback, basis, thisp) {
465
- if (this.root) {
466
- basis = this.root.reduce(callback, basis, 0, thisp, this);
467
- }
468
- return basis;
469
- };
470
-
471
- SortedSet.prototype.reduceRight = function (callback, basis, thisp) {
472
- if (this.root) {
473
- basis = this.root.reduceRight(callback, basis, this.length - 1, thisp, this);
474
- }
475
- return basis;
476
- };
477
-
478
- SortedSet.prototype.min = function (at) {
479
- var least = this.findLeast(at);
480
- if (least) {
481
- return least.value;
482
- }
483
- };
484
-
485
- SortedSet.prototype.max = function (at) {
486
- var greatest = this.findGreatest(at);
487
- if (greatest) {
488
- return greatest.value;
489
- }
490
- };
491
-
492
- SortedSet.prototype.one = function () {
493
- return this.min();
494
- };
495
-
496
- SortedSet.prototype.clear = function () {
497
- var minus;
498
- if (this.dispatchesRangeChanges) {
499
- minus = this.toArray();
500
- this.dispatchBeforeRangeChange([], minus, 0);
501
- }
502
- this.root = null;
503
- this.length = 0;
504
- if (this.dispatchesRangeChanges) {
505
- this.dispatchRangeChange([], minus, 0);
506
- }
507
- };
508
-
509
- SortedSet.prototype.iterate = function (start, end) {
510
- return new this.Iterator(this, start, end);
511
- };
512
-
513
- SortedSet.prototype.Iterator = Iterator;
514
-
515
- SortedSet.prototype.summary = function () {
516
- if (this.root) {
517
- return this.root.summary();
518
- } else {
519
- return "()";
520
- }
521
- };
522
-
523
- SortedSet.prototype.log = function (charmap, logNode, callback, thisp) {
524
- charmap = charmap || TreeLog.unicodeRound;
525
- logNode = logNode || this.logNode;
526
- if (!callback) {
527
- callback = console.log;
528
- thisp = console;
529
- }
530
- callback = callback.bind(thisp);
531
- if (this.root) {
532
- this.root.log(charmap, logNode, callback, callback);
533
- }
534
- };
535
-
536
- SortedSet.prototype.logNode = function (node, log, logBefore) {
537
- log(" " + node.value);
538
- };
539
-
540
- SortedSet.logCharsets = TreeLog;
541
-
542
- SortedSet.prototype.Node = Node;
543
-
544
- function Node(value) {
545
- this.value = value;
546
- this.left = null;
547
- this.right = null;
548
- this.length = 1;
549
- }
550
-
551
- // TODO case where no basis is provided for reduction
552
-
553
- Node.prototype.reduce = function (callback, basis, index, thisp, tree, depth) {
554
- depth = depth || 0;
555
- if (this.left) {
556
- // prerecord length to be resistant to mutation
557
- var length = this.left.length;
558
- basis = this.left.reduce(callback, basis, index, thisp, tree, depth + 1);
559
- index += length;
560
- }
561
- basis = callback.call(thisp, basis, this.value, index, tree, this, depth);
562
- index += 1;
563
- if (this.right) {
564
- basis = this.right.reduce(callback, basis, index, thisp, tree, depth + 1);
565
- }
566
- return basis;
567
- };
568
-
569
- Node.prototype.reduceRight = function (callback, basis, index, thisp, tree, depth) {
570
- depth = depth || 0;
571
- if (this.right) {
572
- basis = this.right.reduce(callback, basis, index, thisp, tree, depth + 1);
573
- index -= this.right.length;
574
- }
575
- basis = callback.call(thisp, basis, this.value, this.value, tree, this, depth);
576
- index -= 1;
577
- if (this.left) {
578
- basis = this.left.reduce(callback, basis, index, thisp, tree, depth + 1);
579
- }
580
- return basis;
581
- };
582
-
583
- Node.prototype.touch = function () {
584
- this.length = 1 +
585
- (this.left ? this.left.length : 0) +
586
- (this.right ? this.right.length : 0);
587
- this.index = this.left ? this.left.length : 0;
588
- };
589
-
590
- Node.prototype.checkIntegrity = function () {
591
- var length = 1;
592
- length += this.left ? this.left.checkIntegrity() : 0;
593
- length += this.right ? this.right.checkIntegrity() : 0;
594
- if (this.length !== length)
595
- throw new Error("Integrity check failed: " + this.summary());
596
- return length;
597
- }
598
-
599
- // get the next node in this subtree
600
- Node.prototype.getNext = function () {
601
- var node = this;
602
- if (node.right) {
603
- node = node.right;
604
- while (node.left) {
605
- node = node.left;
606
- }
607
- return node;
608
- }
609
- };
610
-
611
- // get the previous node in this subtree
612
- Node.prototype.getPrevious = function () {
613
- var node = this;
614
- if (node.left) {
615
- node = node.left;
616
- while (node.right) {
617
- node = node.right;
618
- }
619
- return node;
620
- }
621
- };
622
-
623
- Node.prototype.summary = function () {
624
- var value = this.value || "-";
625
- value += " <" + this.length;
626
- if (!this.left && !this.right) {
627
- return "(" + value + ")";
628
- }
629
- return "(" + value + " " + (
630
- this.left ? this.left.summary() : "()"
631
- ) + ", " + (
632
- this.right ? this.right.summary() : "()"
633
- ) + ")";
634
- };
635
-
636
- Node.prototype.log = function (charmap, logNode, log, logAbove) {
637
- var self = this;
638
-
639
- var branch;
640
- if (this.left && this.right) {
641
- branch = charmap.intersection;
642
- } else if (this.left) {
643
- branch = charmap.branchUp;
644
- } else if (this.right) {
645
- branch = charmap.branchDown;
646
- } else {
647
- branch = charmap.through;
648
- }
649
-
650
- var loggedAbove;
651
- this.left && this.left.log(
652
- charmap,
653
- logNode,
654
- function innerWrite(line) {
655
- if (!loggedAbove) {
656
- loggedAbove = true;
657
- // leader
658
- logAbove(charmap.fromBelow + charmap.through + line);
659
- } else {
660
- // below
661
- logAbove(charmap.strafe + " " + line);
662
- }
663
- },
664
- function innerWriteAbove(line) {
665
- // above
666
- logAbove(" " + line);
667
- }
668
- );
669
-
670
- var loggedOn;
671
- logNode(
672
- this,
673
- function innerWrite(line) {
674
- if (!loggedOn) {
675
- loggedOn = true;
676
- log(branch + line);
677
- } else {
678
- log((self.right ? charmap.strafe : " ") + line);
679
- }
680
- },
681
- function innerWriteAbove(line) {
682
- logAbove((self.left ? charmap.strafe : " ") + line);
683
- }
684
- );
685
-
686
- var loggedBelow;
687
- this.right && this.right.log(
688
- charmap,
689
- logNode,
690
- function innerWrite(line) {
691
- if (!loggedBelow) {
692
- loggedBelow = true;
693
- log(charmap.fromAbove + charmap.through + line);
694
- } else {
695
- log(" " + line);
696
- }
697
- },
698
- function innerWriteAbove(line) {
699
- log(charmap.strafe + " " + line);
700
- }
701
- );
702
- };
703
-
704
- function Iterator(set, start, end) {
705
- this.set = set;
706
- this.prev = null;
707
- this.end = end;
708
- if (start) {
709
- var next = this.set.findLeastGreaterThanOrEqual(start);
710
- if (next) {
711
- this.set.splay(next.value);
712
- this.prev = next.getPrevious();
713
- }
714
- }
715
- }
716
-
717
- Iterator.prototype.next = function () {
718
- var next;
719
- if (this.prev) {
720
- next = this.set.findLeastGreaterThan(this.prev.value);
721
- } else {
722
- next = this.set.findLeast();
723
- }
724
- if (!next) {
725
- throw StopIteration;
726
- }
727
- if (
728
- this.end !== undefined &&
729
- this.set.contentCompare(next.value, this.end) >= 0
730
- ) {
731
- throw StopIteration;
732
- }
733
- this.prev = next;
734
- return next.value;
735
- };
736
-