smock 0.1.217 → 0.1.218

Sign up to get free protection for your applications and to get access to all the features.
Files changed (315) hide show
  1. data/Gemfile.lock +1 -1
  2. data/app/assets/javascripts/modules/category_dropdown.coffee +0 -1
  3. data/examples/pages/homepage.html +1 -0
  4. data/node_modules/exports-loader/.npmignore +1 -0
  5. data/node_modules/exports-loader/README.md +18 -0
  6. data/node_modules/exports-loader/index.js +36 -0
  7. data/node_modules/exports-loader/node_modules/loader-utils/.npmignore +1 -0
  8. data/node_modules/exports-loader/node_modules/loader-utils/README.md +129 -0
  9. data/node_modules/exports-loader/node_modules/loader-utils/index.js +229 -0
  10. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/.bin/json5 +41 -0
  11. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/.npmignore +0 -0
  12. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/LICENCE +23 -0
  13. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/README.md +214 -0
  14. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/big.js +1026 -0
  15. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/big.min.js +1 -0
  16. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/doc/bigAPI.html +1026 -0
  17. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/package.json +61 -0
  18. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/big-vs-bigdecimal.html +678 -0
  19. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/bigtime.js +324 -0
  20. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/BigDecTest.class +0 -0
  21. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/BigDecTest.java +60 -0
  22. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/LICENCE.txt +205 -0
  23. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/bigdecimal.js +592 -0
  24. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/bugs.js +53 -0
  25. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_ICU4J/BigDecimal-all-last.js +5724 -0
  26. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_ICU4J/BigDecimal-all-last.min.js +61 -0
  27. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_ICU4J/LICENCE.txt +30 -0
  28. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/abs.js +555 -0
  29. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/browser/big-vs-number.html +249 -0
  30. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/browser/every-test.html +66 -0
  31. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/browser/single-test.html +26 -0
  32. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/cmp.js +4305 -0
  33. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/div.js +9978 -0
  34. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/every-test.js +31 -0
  35. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/minus.js +1793 -0
  36. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/mod.js +1838 -0
  37. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/plus.js +1916 -0
  38. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/pow.js +1233 -0
  39. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/round.js +5173 -0
  40. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/sqrt.js +788 -0
  41. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/times.js +2159 -0
  42. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/toExponential.js +472 -0
  43. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/toFixed.js +1030 -0
  44. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/toPrecision.js +508 -0
  45. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/big.js/test/toString.js +1068 -0
  46. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/.npmignore +4 -0
  47. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/CHANGELOG.md +56 -0
  48. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/Makefile +27 -0
  49. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/README.md +173 -0
  50. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/lib/cli.js +41 -0
  51. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/lib/json5.js +462 -0
  52. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/lib/require.js +18 -0
  53. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/package.json +66 -0
  54. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/package.json5 +24 -0
  55. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/empty-array.json +1 -0
  56. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/leading-comma-array.js +3 -0
  57. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/lone-trailing-comma-array.js +3 -0
  58. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/no-comma-array.txt +4 -0
  59. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/regular-array.json +5 -0
  60. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/trailing-comma-array.json5 +3 -0
  61. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-following-array-element.json5 +6 -0
  62. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-following-top-level-value.json5 +5 -0
  63. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-in-string.json +1 -0
  64. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-preceding-top-level-value.json5 +5 -0
  65. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-with-asterisks.json5 +7 -0
  66. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-following-array-element.json5 +3 -0
  67. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-following-top-level-value.json5 +1 -0
  68. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-in-string.json +1 -0
  69. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-preceding-top-level-value.json5 +2 -0
  70. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/top-level-block-comment.txt +4 -0
  71. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/top-level-inline-comment.txt +1 -0
  72. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/unterminated-block-comment.txt +5 -0
  73. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/empty.txt +0 -0
  74. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/npm-package.json +106 -0
  75. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/npm-package.json5 +106 -0
  76. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/readme-example.json5 +23 -0
  77. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/decimal-literal-with-exponent.json +1 -0
  78. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/decimal-literal-with-negative-exponent.json +1 -0
  79. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/decimal-literal.json +1 -0
  80. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal-with-lowercase-letter.json5 +1 -0
  81. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal-with-no-digits.txt +1 -0
  82. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal-with-uppercase-x.json5 +1 -0
  83. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal.json5 +1 -0
  84. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/leading-decimal-point.json5 +1 -0
  85. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/negative-decimal-literal.json +1 -0
  86. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/negative-hexadecimal-literal.json5 +1 -0
  87. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/negative-leading-decimal-point.json5 +1 -0
  88. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/noctal-literal-with-octal-digit-after-leading-zero.js +1 -0
  89. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/noctal-literal.js +1 -0
  90. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/octal-literal.txt +1 -0
  91. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/trailing-decimal-point-with-exponent.js +1 -0
  92. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/trailing-decimal-point.js +1 -0
  93. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/zero-literal.json +1 -0
  94. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/empty-object.json +1 -0
  95. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/illegal-unquoted-key-number.txt +3 -0
  96. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/illegal-unquoted-key-symbol.txt +3 -0
  97. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/leading-comma-object.txt +3 -0
  98. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/lone-trailing-comma-object.txt +3 -0
  99. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/no-comma-object.txt +4 -0
  100. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/reserved-unquoted-key.json5 +3 -0
  101. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/single-quoted-key.json5 +3 -0
  102. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/trailing-comma-object.json5 +3 -0
  103. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/unquoted-keys.json5 +8 -0
  104. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/strings/escaped-single-quoted-string.json5 +1 -0
  105. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/strings/multi-line-string.json5 +2 -0
  106. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/strings/single-quoted-string.json5 +1 -0
  107. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/todo/unicode-escaped-unquoted-key.json5 +3 -0
  108. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/todo/unicode-unquoted-key.json5 +3 -0
  109. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/parse.js +74 -0
  110. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/readme.md +23 -0
  111. data/node_modules/exports-loader/node_modules/loader-utils/node_modules/json5/test/require.js +18 -0
  112. data/node_modules/exports-loader/node_modules/loader-utils/package.json +54 -0
  113. data/node_modules/exports-loader/node_modules/loader-utils/test/index.js +62 -0
  114. data/node_modules/exports-loader/node_modules/source-map/.npmignore +2 -0
  115. data/node_modules/exports-loader/node_modules/source-map/.travis.yml +4 -0
  116. data/node_modules/exports-loader/node_modules/source-map/CHANGELOG.md +194 -0
  117. data/node_modules/exports-loader/node_modules/source-map/LICENSE +28 -0
  118. data/node_modules/exports-loader/node_modules/source-map/Makefile.dryice.js +166 -0
  119. data/node_modules/exports-loader/node_modules/source-map/README.md +475 -0
  120. data/node_modules/exports-loader/node_modules/source-map/build/assert-shim.js +56 -0
  121. data/node_modules/exports-loader/node_modules/source-map/build/mini-require.js +152 -0
  122. data/node_modules/exports-loader/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  123. data/node_modules/exports-loader/node_modules/source-map/build/prefix-utils.jsm +18 -0
  124. data/node_modules/exports-loader/node_modules/source-map/build/suffix-browser.js +8 -0
  125. data/node_modules/exports-loader/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  126. data/node_modules/exports-loader/node_modules/source-map/build/suffix-utils.jsm +21 -0
  127. data/node_modules/exports-loader/node_modules/source-map/build/test-prefix.js +8 -0
  128. data/node_modules/exports-loader/node_modules/source-map/build/test-suffix.js +3 -0
  129. data/node_modules/exports-loader/node_modules/source-map/lib/source-map.js +8 -0
  130. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/array-set.js +97 -0
  131. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/base64-vlq.js +142 -0
  132. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/base64.js +42 -0
  133. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/binary-search.js +80 -0
  134. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/mapping-list.js +86 -0
  135. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/source-map-consumer.js +575 -0
  136. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/source-map-generator.js +400 -0
  137. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/source-node.js +414 -0
  138. data/node_modules/exports-loader/node_modules/source-map/lib/source-map/util.js +319 -0
  139. data/node_modules/exports-loader/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  140. data/node_modules/exports-loader/node_modules/source-map/node_modules/amdefine/README.md +171 -0
  141. data/node_modules/exports-loader/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  142. data/node_modules/exports-loader/node_modules/source-map/node_modules/amdefine/intercept.js +36 -0
  143. data/node_modules/exports-loader/node_modules/source-map/node_modules/amdefine/package.json +37 -0
  144. data/node_modules/exports-loader/node_modules/source-map/package.json +186 -0
  145. data/node_modules/exports-loader/node_modules/source-map/test/run-tests.js +62 -0
  146. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-api.js +26 -0
  147. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-array-set.js +104 -0
  148. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-base64-vlq.js +23 -0
  149. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-base64.js +35 -0
  150. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  151. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-dog-fooding.js +84 -0
  152. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-source-map-consumer.js +702 -0
  153. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-source-map-generator.js +679 -0
  154. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-source-node.js +612 -0
  155. data/node_modules/exports-loader/node_modules/source-map/test/source-map/test-util.js +216 -0
  156. data/node_modules/exports-loader/node_modules/source-map/test/source-map/util.js +192 -0
  157. data/node_modules/exports-loader/package.json +46 -0
  158. data/node_modules/imports-loader/.npmignore +1 -0
  159. data/node_modules/imports-loader/README.md +17 -0
  160. data/node_modules/imports-loader/index.js +46 -0
  161. data/node_modules/imports-loader/node_modules/loader-utils/.npmignore +1 -0
  162. data/node_modules/imports-loader/node_modules/loader-utils/README.md +129 -0
  163. data/node_modules/imports-loader/node_modules/loader-utils/index.js +229 -0
  164. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/.bin/json5 +41 -0
  165. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/.npmignore +0 -0
  166. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/LICENCE +23 -0
  167. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/README.md +214 -0
  168. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/big.js +1026 -0
  169. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/big.min.js +1 -0
  170. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/doc/bigAPI.html +1026 -0
  171. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/package.json +61 -0
  172. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/big-vs-bigdecimal.html +678 -0
  173. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/bigtime.js +324 -0
  174. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/BigDecTest.class +0 -0
  175. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/BigDecTest.java +60 -0
  176. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/LICENCE.txt +205 -0
  177. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/bigdecimal.js +592 -0
  178. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_GWT/bugs.js +53 -0
  179. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_ICU4J/BigDecimal-all-last.js +5724 -0
  180. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_ICU4J/BigDecimal-all-last.min.js +61 -0
  181. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/perf/lib/bigdecimal_ICU4J/LICENCE.txt +30 -0
  182. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/abs.js +555 -0
  183. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/browser/big-vs-number.html +249 -0
  184. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/browser/every-test.html +66 -0
  185. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/browser/single-test.html +26 -0
  186. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/cmp.js +4305 -0
  187. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/div.js +9978 -0
  188. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/every-test.js +31 -0
  189. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/minus.js +1793 -0
  190. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/mod.js +1838 -0
  191. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/plus.js +1916 -0
  192. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/pow.js +1233 -0
  193. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/round.js +5173 -0
  194. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/sqrt.js +788 -0
  195. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/times.js +2159 -0
  196. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/toExponential.js +472 -0
  197. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/toFixed.js +1030 -0
  198. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/toPrecision.js +508 -0
  199. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/big.js/test/toString.js +1068 -0
  200. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/.npmignore +4 -0
  201. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/CHANGELOG.md +56 -0
  202. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/Makefile +27 -0
  203. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/README.md +173 -0
  204. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/lib/cli.js +41 -0
  205. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/lib/json5.js +462 -0
  206. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/lib/require.js +18 -0
  207. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/package.json +66 -0
  208. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/package.json5 +24 -0
  209. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/empty-array.json +1 -0
  210. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/leading-comma-array.js +3 -0
  211. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/lone-trailing-comma-array.js +3 -0
  212. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/no-comma-array.txt +4 -0
  213. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/regular-array.json +5 -0
  214. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/arrays/trailing-comma-array.json5 +3 -0
  215. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-following-array-element.json5 +6 -0
  216. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-following-top-level-value.json5 +5 -0
  217. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-in-string.json +1 -0
  218. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-preceding-top-level-value.json5 +5 -0
  219. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/block-comment-with-asterisks.json5 +7 -0
  220. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-following-array-element.json5 +3 -0
  221. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-following-top-level-value.json5 +1 -0
  222. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-in-string.json +1 -0
  223. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/inline-comment-preceding-top-level-value.json5 +2 -0
  224. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/top-level-block-comment.txt +4 -0
  225. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/top-level-inline-comment.txt +1 -0
  226. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/comments/unterminated-block-comment.txt +5 -0
  227. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/empty.txt +0 -0
  228. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/npm-package.json +106 -0
  229. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/npm-package.json5 +106 -0
  230. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/misc/readme-example.json5 +23 -0
  231. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/decimal-literal-with-exponent.json +1 -0
  232. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/decimal-literal-with-negative-exponent.json +1 -0
  233. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/decimal-literal.json +1 -0
  234. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal-with-lowercase-letter.json5 +1 -0
  235. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal-with-no-digits.txt +1 -0
  236. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal-with-uppercase-x.json5 +1 -0
  237. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/hexadecimal-literal.json5 +1 -0
  238. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/leading-decimal-point.json5 +1 -0
  239. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/negative-decimal-literal.json +1 -0
  240. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/negative-hexadecimal-literal.json5 +1 -0
  241. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/negative-leading-decimal-point.json5 +1 -0
  242. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/noctal-literal-with-octal-digit-after-leading-zero.js +1 -0
  243. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/noctal-literal.js +1 -0
  244. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/octal-literal.txt +1 -0
  245. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/trailing-decimal-point-with-exponent.js +1 -0
  246. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/trailing-decimal-point.js +1 -0
  247. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/numbers/zero-literal.json +1 -0
  248. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/empty-object.json +1 -0
  249. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/illegal-unquoted-key-number.txt +3 -0
  250. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/illegal-unquoted-key-symbol.txt +3 -0
  251. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/leading-comma-object.txt +3 -0
  252. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/lone-trailing-comma-object.txt +3 -0
  253. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/no-comma-object.txt +4 -0
  254. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/reserved-unquoted-key.json5 +3 -0
  255. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/single-quoted-key.json5 +3 -0
  256. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/trailing-comma-object.json5 +3 -0
  257. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/objects/unquoted-keys.json5 +8 -0
  258. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/strings/escaped-single-quoted-string.json5 +1 -0
  259. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/strings/multi-line-string.json5 +2 -0
  260. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/strings/single-quoted-string.json5 +1 -0
  261. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/todo/unicode-escaped-unquoted-key.json5 +3 -0
  262. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse-cases/todo/unicode-unquoted-key.json5 +3 -0
  263. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/parse.js +74 -0
  264. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/readme.md +23 -0
  265. data/node_modules/imports-loader/node_modules/loader-utils/node_modules/json5/test/require.js +18 -0
  266. data/node_modules/imports-loader/node_modules/loader-utils/package.json +53 -0
  267. data/node_modules/imports-loader/node_modules/loader-utils/test/index.js +62 -0
  268. data/node_modules/imports-loader/node_modules/source-map/.npmignore +2 -0
  269. data/node_modules/imports-loader/node_modules/source-map/.travis.yml +4 -0
  270. data/node_modules/imports-loader/node_modules/source-map/CHANGELOG.md +194 -0
  271. data/node_modules/imports-loader/node_modules/source-map/LICENSE +28 -0
  272. data/node_modules/imports-loader/node_modules/source-map/Makefile.dryice.js +166 -0
  273. data/node_modules/imports-loader/node_modules/source-map/README.md +475 -0
  274. data/node_modules/imports-loader/node_modules/source-map/build/assert-shim.js +56 -0
  275. data/node_modules/imports-loader/node_modules/source-map/build/mini-require.js +152 -0
  276. data/node_modules/imports-loader/node_modules/source-map/build/prefix-source-map.jsm +20 -0
  277. data/node_modules/imports-loader/node_modules/source-map/build/prefix-utils.jsm +18 -0
  278. data/node_modules/imports-loader/node_modules/source-map/build/suffix-browser.js +8 -0
  279. data/node_modules/imports-loader/node_modules/source-map/build/suffix-source-map.jsm +6 -0
  280. data/node_modules/imports-loader/node_modules/source-map/build/suffix-utils.jsm +21 -0
  281. data/node_modules/imports-loader/node_modules/source-map/build/test-prefix.js +8 -0
  282. data/node_modules/imports-loader/node_modules/source-map/build/test-suffix.js +3 -0
  283. data/node_modules/imports-loader/node_modules/source-map/lib/source-map.js +8 -0
  284. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/array-set.js +97 -0
  285. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/base64-vlq.js +142 -0
  286. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/base64.js +42 -0
  287. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/binary-search.js +80 -0
  288. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/mapping-list.js +86 -0
  289. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/source-map-consumer.js +575 -0
  290. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/source-map-generator.js +400 -0
  291. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/source-node.js +414 -0
  292. data/node_modules/imports-loader/node_modules/source-map/lib/source-map/util.js +319 -0
  293. data/node_modules/imports-loader/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
  294. data/node_modules/imports-loader/node_modules/source-map/node_modules/amdefine/README.md +171 -0
  295. data/node_modules/imports-loader/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
  296. data/node_modules/imports-loader/node_modules/source-map/node_modules/amdefine/intercept.js +36 -0
  297. data/node_modules/imports-loader/node_modules/source-map/node_modules/amdefine/package.json +37 -0
  298. data/node_modules/imports-loader/node_modules/source-map/package.json +186 -0
  299. data/node_modules/imports-loader/node_modules/source-map/test/run-tests.js +62 -0
  300. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-api.js +26 -0
  301. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-array-set.js +104 -0
  302. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-base64-vlq.js +23 -0
  303. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-base64.js +35 -0
  304. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
  305. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-dog-fooding.js +84 -0
  306. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-source-map-consumer.js +702 -0
  307. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-source-map-generator.js +679 -0
  308. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-source-node.js +612 -0
  309. data/node_modules/imports-loader/node_modules/source-map/test/source-map/test-util.js +216 -0
  310. data/node_modules/imports-loader/node_modules/source-map/test/source-map/util.js +192 -0
  311. data/node_modules/imports-loader/package.json +46 -0
  312. data/package.json +4 -2
  313. data/webpack.config.js +3 -6
  314. metadata +312 -5
  315. data/app/assets/javascripts/vendor/jquery.js +0 -10346
@@ -0,0 +1,62 @@
1
+ #!/usr/bin/env node
2
+ /* -*- Mode: js; js-indent-level: 2; -*- */
3
+ /*
4
+ * Copyright 2011 Mozilla Foundation and contributors
5
+ * Licensed under the New BSD license. See LICENSE or:
6
+ * http://opensource.org/licenses/BSD-3-Clause
7
+ */
8
+ var assert = require('assert');
9
+ var fs = require('fs');
10
+ var path = require('path');
11
+ var util = require('./source-map/util');
12
+
13
+ function run(tests) {
14
+ var total = 0;
15
+ var passed = 0;
16
+
17
+ for (var i = 0; i < tests.length; i++) {
18
+ for (var k in tests[i].testCase) {
19
+ if (/^test/.test(k)) {
20
+ total++;
21
+ try {
22
+ tests[i].testCase[k](assert, util);
23
+ passed++;
24
+ }
25
+ catch (e) {
26
+ console.log('FAILED ' + tests[i].name + ': ' + k + '!');
27
+ console.log(e.stack);
28
+ }
29
+ }
30
+ }
31
+ }
32
+
33
+ console.log('');
34
+ console.log(passed + ' / ' + total + ' tests passed.');
35
+ console.log('');
36
+
37
+ return total - passed;
38
+ }
39
+
40
+ function isTestFile(f) {
41
+ var testToRun = process.argv[2];
42
+ return testToRun
43
+ ? path.basename(testToRun) === f
44
+ : /^test\-.*?\.js/.test(f);
45
+ }
46
+
47
+ function toModule(f) {
48
+ return './source-map/' + f.replace(/\.js$/, '');
49
+ }
50
+
51
+ var requires = fs.readdirSync(path.join(__dirname, 'source-map'))
52
+ .filter(isTestFile)
53
+ .map(toModule);
54
+
55
+ var code = run(requires.map(require).map(function (mod, i) {
56
+ return {
57
+ name: requires[i],
58
+ testCase: mod
59
+ };
60
+ }));
61
+
62
+ process.exit(code);
@@ -0,0 +1,26 @@
1
+ /* -*- Mode: js; js-indent-level: 2; -*- */
2
+ /*
3
+ * Copyright 2012 Mozilla Foundation and contributors
4
+ * Licensed under the New BSD license. See LICENSE or:
5
+ * http://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ if (typeof define !== 'function') {
8
+ var define = require('amdefine')(module, require);
9
+ }
10
+ define(function (require, exports, module) {
11
+
12
+ var sourceMap;
13
+ try {
14
+ sourceMap = require('../../lib/source-map');
15
+ } catch (e) {
16
+ sourceMap = {};
17
+ Components.utils.import('resource:///modules/devtools/SourceMap.jsm', sourceMap);
18
+ }
19
+
20
+ exports['test that the api is properly exposed in the top level'] = function (assert, util) {
21
+ assert.equal(typeof sourceMap.SourceMapGenerator, "function");
22
+ assert.equal(typeof sourceMap.SourceMapConsumer, "function");
23
+ assert.equal(typeof sourceMap.SourceNode, "function");
24
+ };
25
+
26
+ });
@@ -0,0 +1,104 @@
1
+ /* -*- Mode: js; js-indent-level: 2; -*- */
2
+ /*
3
+ * Copyright 2011 Mozilla Foundation and contributors
4
+ * Licensed under the New BSD license. See LICENSE or:
5
+ * http://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ if (typeof define !== 'function') {
8
+ var define = require('amdefine')(module, require);
9
+ }
10
+ define(function (require, exports, module) {
11
+
12
+ var ArraySet = require('../../lib/source-map/array-set').ArraySet;
13
+
14
+ function makeTestSet() {
15
+ var set = new ArraySet();
16
+ for (var i = 0; i < 100; i++) {
17
+ set.add(String(i));
18
+ }
19
+ return set;
20
+ }
21
+
22
+ exports['test .has() membership'] = function (assert, util) {
23
+ var set = makeTestSet();
24
+ for (var i = 0; i < 100; i++) {
25
+ assert.ok(set.has(String(i)));
26
+ }
27
+ };
28
+
29
+ exports['test .indexOf() elements'] = function (assert, util) {
30
+ var set = makeTestSet();
31
+ for (var i = 0; i < 100; i++) {
32
+ assert.strictEqual(set.indexOf(String(i)), i);
33
+ }
34
+ };
35
+
36
+ exports['test .at() indexing'] = function (assert, util) {
37
+ var set = makeTestSet();
38
+ for (var i = 0; i < 100; i++) {
39
+ assert.strictEqual(set.at(i), String(i));
40
+ }
41
+ };
42
+
43
+ exports['test creating from an array'] = function (assert, util) {
44
+ var set = ArraySet.fromArray(['foo', 'bar', 'baz', 'quux', 'hasOwnProperty']);
45
+
46
+ assert.ok(set.has('foo'));
47
+ assert.ok(set.has('bar'));
48
+ assert.ok(set.has('baz'));
49
+ assert.ok(set.has('quux'));
50
+ assert.ok(set.has('hasOwnProperty'));
51
+
52
+ assert.strictEqual(set.indexOf('foo'), 0);
53
+ assert.strictEqual(set.indexOf('bar'), 1);
54
+ assert.strictEqual(set.indexOf('baz'), 2);
55
+ assert.strictEqual(set.indexOf('quux'), 3);
56
+
57
+ assert.strictEqual(set.at(0), 'foo');
58
+ assert.strictEqual(set.at(1), 'bar');
59
+ assert.strictEqual(set.at(2), 'baz');
60
+ assert.strictEqual(set.at(3), 'quux');
61
+ };
62
+
63
+ exports['test that you can add __proto__; see github issue #30'] = function (assert, util) {
64
+ var set = new ArraySet();
65
+ set.add('__proto__');
66
+ assert.ok(set.has('__proto__'));
67
+ assert.strictEqual(set.at(0), '__proto__');
68
+ assert.strictEqual(set.indexOf('__proto__'), 0);
69
+ };
70
+
71
+ exports['test .fromArray() with duplicates'] = function (assert, util) {
72
+ var set = ArraySet.fromArray(['foo', 'foo']);
73
+ assert.ok(set.has('foo'));
74
+ assert.strictEqual(set.at(0), 'foo');
75
+ assert.strictEqual(set.indexOf('foo'), 0);
76
+ assert.strictEqual(set.toArray().length, 1);
77
+
78
+ set = ArraySet.fromArray(['foo', 'foo'], true);
79
+ assert.ok(set.has('foo'));
80
+ assert.strictEqual(set.at(0), 'foo');
81
+ assert.strictEqual(set.at(1), 'foo');
82
+ assert.strictEqual(set.indexOf('foo'), 0);
83
+ assert.strictEqual(set.toArray().length, 2);
84
+ };
85
+
86
+ exports['test .add() with duplicates'] = function (assert, util) {
87
+ var set = new ArraySet();
88
+ set.add('foo');
89
+
90
+ set.add('foo');
91
+ assert.ok(set.has('foo'));
92
+ assert.strictEqual(set.at(0), 'foo');
93
+ assert.strictEqual(set.indexOf('foo'), 0);
94
+ assert.strictEqual(set.toArray().length, 1);
95
+
96
+ set.add('foo', true);
97
+ assert.ok(set.has('foo'));
98
+ assert.strictEqual(set.at(0), 'foo');
99
+ assert.strictEqual(set.at(1), 'foo');
100
+ assert.strictEqual(set.indexOf('foo'), 0);
101
+ assert.strictEqual(set.toArray().length, 2);
102
+ };
103
+
104
+ });
@@ -0,0 +1,23 @@
1
+ /* -*- Mode: js; js-indent-level: 2; -*- */
2
+ /*
3
+ * Copyright 2011 Mozilla Foundation and contributors
4
+ * Licensed under the New BSD license. See LICENSE or:
5
+ * http://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ if (typeof define !== 'function') {
8
+ var define = require('amdefine')(module, require);
9
+ }
10
+ define(function (require, exports, module) {
11
+
12
+ var base64VLQ = require('../../lib/source-map/base64-vlq');
13
+
14
+ exports['test normal encoding and decoding'] = function (assert, util) {
15
+ var result = {};
16
+ for (var i = -255; i < 256; i++) {
17
+ base64VLQ.decode(base64VLQ.encode(i), result);
18
+ assert.equal(result.value, i);
19
+ assert.equal(result.rest, "");
20
+ }
21
+ };
22
+
23
+ });
@@ -0,0 +1,35 @@
1
+ /* -*- Mode: js; js-indent-level: 2; -*- */
2
+ /*
3
+ * Copyright 2011 Mozilla Foundation and contributors
4
+ * Licensed under the New BSD license. See LICENSE or:
5
+ * http://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ if (typeof define !== 'function') {
8
+ var define = require('amdefine')(module, require);
9
+ }
10
+ define(function (require, exports, module) {
11
+
12
+ var base64 = require('../../lib/source-map/base64');
13
+
14
+ exports['test out of range encoding'] = function (assert, util) {
15
+ assert.throws(function () {
16
+ base64.encode(-1);
17
+ });
18
+ assert.throws(function () {
19
+ base64.encode(64);
20
+ });
21
+ };
22
+
23
+ exports['test out of range decoding'] = function (assert, util) {
24
+ assert.throws(function () {
25
+ base64.decode('=');
26
+ });
27
+ };
28
+
29
+ exports['test normal encoding and decoding'] = function (assert, util) {
30
+ for (var i = 0; i < 64; i++) {
31
+ assert.equal(base64.decode(base64.encode(i)), i);
32
+ }
33
+ };
34
+
35
+ });
@@ -0,0 +1,54 @@
1
+ /* -*- Mode: js; js-indent-level: 2; -*- */
2
+ /*
3
+ * Copyright 2011 Mozilla Foundation and contributors
4
+ * Licensed under the New BSD license. See LICENSE or:
5
+ * http://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ if (typeof define !== 'function') {
8
+ var define = require('amdefine')(module, require);
9
+ }
10
+ define(function (require, exports, module) {
11
+
12
+ var binarySearch = require('../../lib/source-map/binary-search');
13
+
14
+ function numberCompare(a, b) {
15
+ return a - b;
16
+ }
17
+
18
+ exports['test too high'] = function (assert, util) {
19
+ var needle = 30;
20
+ var haystack = [2,4,6,8,10,12,14,16,18,20];
21
+
22
+ assert.doesNotThrow(function () {
23
+ binarySearch.search(needle, haystack, numberCompare);
24
+ });
25
+
26
+ assert.equal(haystack[binarySearch.search(needle, haystack, numberCompare)], 20);
27
+ };
28
+
29
+ exports['test too low'] = function (assert, util) {
30
+ var needle = 1;
31
+ var haystack = [2,4,6,8,10,12,14,16,18,20];
32
+
33
+ assert.doesNotThrow(function () {
34
+ binarySearch.search(needle, haystack, numberCompare);
35
+ });
36
+
37
+ assert.equal(binarySearch.search(needle, haystack, numberCompare), -1);
38
+ };
39
+
40
+ exports['test exact search'] = function (assert, util) {
41
+ var needle = 4;
42
+ var haystack = [2,4,6,8,10,12,14,16,18,20];
43
+
44
+ assert.equal(haystack[binarySearch.search(needle, haystack, numberCompare)], 4);
45
+ };
46
+
47
+ exports['test fuzzy search'] = function (assert, util) {
48
+ var needle = 19;
49
+ var haystack = [2,4,6,8,10,12,14,16,18,20];
50
+
51
+ assert.equal(haystack[binarySearch.search(needle, haystack, numberCompare)], 18);
52
+ };
53
+
54
+ });
@@ -0,0 +1,84 @@
1
+ /* -*- Mode: js; js-indent-level: 2; -*- */
2
+ /*
3
+ * Copyright 2011 Mozilla Foundation and contributors
4
+ * Licensed under the New BSD license. See LICENSE or:
5
+ * http://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ if (typeof define !== 'function') {
8
+ var define = require('amdefine')(module, require);
9
+ }
10
+ define(function (require, exports, module) {
11
+
12
+ var SourceMapConsumer = require('../../lib/source-map/source-map-consumer').SourceMapConsumer;
13
+ var SourceMapGenerator = require('../../lib/source-map/source-map-generator').SourceMapGenerator;
14
+
15
+ exports['test eating our own dog food'] = function (assert, util) {
16
+ var smg = new SourceMapGenerator({
17
+ file: 'testing.js',
18
+ sourceRoot: '/wu/tang'
19
+ });
20
+
21
+ smg.addMapping({
22
+ source: 'gza.coffee',
23
+ original: { line: 1, column: 0 },
24
+ generated: { line: 2, column: 2 }
25
+ });
26
+
27
+ smg.addMapping({
28
+ source: 'gza.coffee',
29
+ original: { line: 2, column: 0 },
30
+ generated: { line: 3, column: 2 }
31
+ });
32
+
33
+ smg.addMapping({
34
+ source: 'gza.coffee',
35
+ original: { line: 3, column: 0 },
36
+ generated: { line: 4, column: 2 }
37
+ });
38
+
39
+ smg.addMapping({
40
+ source: 'gza.coffee',
41
+ original: { line: 4, column: 0 },
42
+ generated: { line: 5, column: 2 }
43
+ });
44
+
45
+ smg.addMapping({
46
+ source: 'gza.coffee',
47
+ original: { line: 5, column: 10 },
48
+ generated: { line: 6, column: 12 }
49
+ });
50
+
51
+ var smc = new SourceMapConsumer(smg.toString());
52
+
53
+ // Exact
54
+ util.assertMapping(2, 2, '/wu/tang/gza.coffee', 1, 0, null, smc, assert);
55
+ util.assertMapping(3, 2, '/wu/tang/gza.coffee', 2, 0, null, smc, assert);
56
+ util.assertMapping(4, 2, '/wu/tang/gza.coffee', 3, 0, null, smc, assert);
57
+ util.assertMapping(5, 2, '/wu/tang/gza.coffee', 4, 0, null, smc, assert);
58
+ util.assertMapping(6, 12, '/wu/tang/gza.coffee', 5, 10, null, smc, assert);
59
+
60
+ // Fuzzy
61
+
62
+ // Generated to original
63
+ util.assertMapping(2, 0, null, null, null, null, smc, assert, true);
64
+ util.assertMapping(2, 9, '/wu/tang/gza.coffee', 1, 0, null, smc, assert, true);
65
+ util.assertMapping(3, 0, null, null, null, null, smc, assert, true);
66
+ util.assertMapping(3, 9, '/wu/tang/gza.coffee', 2, 0, null, smc, assert, true);
67
+ util.assertMapping(4, 0, null, null, null, null, smc, assert, true);
68
+ util.assertMapping(4, 9, '/wu/tang/gza.coffee', 3, 0, null, smc, assert, true);
69
+ util.assertMapping(5, 0, null, null, null, null, smc, assert, true);
70
+ util.assertMapping(5, 9, '/wu/tang/gza.coffee', 4, 0, null, smc, assert, true);
71
+ util.assertMapping(6, 0, null, null, null, null, smc, assert, true);
72
+ util.assertMapping(6, 9, null, null, null, null, smc, assert, true);
73
+ util.assertMapping(6, 13, '/wu/tang/gza.coffee', 5, 10, null, smc, assert, true);
74
+
75
+ // Original to generated
76
+ util.assertMapping(2, 2, '/wu/tang/gza.coffee', 1, 1, null, smc, assert, null, true);
77
+ util.assertMapping(3, 2, '/wu/tang/gza.coffee', 2, 3, null, smc, assert, null, true);
78
+ util.assertMapping(4, 2, '/wu/tang/gza.coffee', 3, 6, null, smc, assert, null, true);
79
+ util.assertMapping(5, 2, '/wu/tang/gza.coffee', 4, 9, null, smc, assert, null, true);
80
+ util.assertMapping(5, 2, '/wu/tang/gza.coffee', 5, 9, null, smc, assert, null, true);
81
+ util.assertMapping(6, 12, '/wu/tang/gza.coffee', 6, 19, null, smc, assert, null, true);
82
+ };
83
+
84
+ });
@@ -0,0 +1,702 @@
1
+ /* -*- Mode: js; js-indent-level: 2; -*- */
2
+ /*
3
+ * Copyright 2011 Mozilla Foundation and contributors
4
+ * Licensed under the New BSD license. See LICENSE or:
5
+ * http://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ if (typeof define !== 'function') {
8
+ var define = require('amdefine')(module, require);
9
+ }
10
+ define(function (require, exports, module) {
11
+
12
+ var SourceMapConsumer = require('../../lib/source-map/source-map-consumer').SourceMapConsumer;
13
+ var SourceMapGenerator = require('../../lib/source-map/source-map-generator').SourceMapGenerator;
14
+
15
+ exports['test that we can instantiate with a string or an object'] = function (assert, util) {
16
+ assert.doesNotThrow(function () {
17
+ var map = new SourceMapConsumer(util.testMap);
18
+ });
19
+ assert.doesNotThrow(function () {
20
+ var map = new SourceMapConsumer(JSON.stringify(util.testMap));
21
+ });
22
+ };
23
+
24
+ exports['test that the `sources` field has the original sources'] = function (assert, util) {
25
+ var map;
26
+ var sources;
27
+
28
+ map = new SourceMapConsumer(util.testMap);
29
+ sources = map.sources;
30
+ assert.equal(sources[0], '/the/root/one.js');
31
+ assert.equal(sources[1], '/the/root/two.js');
32
+ assert.equal(sources.length, 2);
33
+
34
+ map = new SourceMapConsumer(util.testMapNoSourceRoot);
35
+ sources = map.sources;
36
+ assert.equal(sources[0], 'one.js');
37
+ assert.equal(sources[1], 'two.js');
38
+ assert.equal(sources.length, 2);
39
+
40
+ map = new SourceMapConsumer(util.testMapEmptySourceRoot);
41
+ sources = map.sources;
42
+ assert.equal(sources[0], 'one.js');
43
+ assert.equal(sources[1], 'two.js');
44
+ assert.equal(sources.length, 2);
45
+ };
46
+
47
+ exports['test that the source root is reflected in a mapping\'s source field'] = function (assert, util) {
48
+ var map;
49
+ var mapping;
50
+
51
+ map = new SourceMapConsumer(util.testMap);
52
+
53
+ mapping = map.originalPositionFor({
54
+ line: 2,
55
+ column: 1
56
+ });
57
+ assert.equal(mapping.source, '/the/root/two.js');
58
+
59
+ mapping = map.originalPositionFor({
60
+ line: 1,
61
+ column: 1
62
+ });
63
+ assert.equal(mapping.source, '/the/root/one.js');
64
+
65
+
66
+ map = new SourceMapConsumer(util.testMapNoSourceRoot);
67
+
68
+ mapping = map.originalPositionFor({
69
+ line: 2,
70
+ column: 1
71
+ });
72
+ assert.equal(mapping.source, 'two.js');
73
+
74
+ mapping = map.originalPositionFor({
75
+ line: 1,
76
+ column: 1
77
+ });
78
+ assert.equal(mapping.source, 'one.js');
79
+
80
+
81
+ map = new SourceMapConsumer(util.testMapEmptySourceRoot);
82
+
83
+ mapping = map.originalPositionFor({
84
+ line: 2,
85
+ column: 1
86
+ });
87
+ assert.equal(mapping.source, 'two.js');
88
+
89
+ mapping = map.originalPositionFor({
90
+ line: 1,
91
+ column: 1
92
+ });
93
+ assert.equal(mapping.source, 'one.js');
94
+ };
95
+
96
+ exports['test mapping tokens back exactly'] = function (assert, util) {
97
+ var map = new SourceMapConsumer(util.testMap);
98
+
99
+ util.assertMapping(1, 1, '/the/root/one.js', 1, 1, null, map, assert);
100
+ util.assertMapping(1, 5, '/the/root/one.js', 1, 5, null, map, assert);
101
+ util.assertMapping(1, 9, '/the/root/one.js', 1, 11, null, map, assert);
102
+ util.assertMapping(1, 18, '/the/root/one.js', 1, 21, 'bar', map, assert);
103
+ util.assertMapping(1, 21, '/the/root/one.js', 2, 3, null, map, assert);
104
+ util.assertMapping(1, 28, '/the/root/one.js', 2, 10, 'baz', map, assert);
105
+ util.assertMapping(1, 32, '/the/root/one.js', 2, 14, 'bar', map, assert);
106
+
107
+ util.assertMapping(2, 1, '/the/root/two.js', 1, 1, null, map, assert);
108
+ util.assertMapping(2, 5, '/the/root/two.js', 1, 5, null, map, assert);
109
+ util.assertMapping(2, 9, '/the/root/two.js', 1, 11, null, map, assert);
110
+ util.assertMapping(2, 18, '/the/root/two.js', 1, 21, 'n', map, assert);
111
+ util.assertMapping(2, 21, '/the/root/two.js', 2, 3, null, map, assert);
112
+ util.assertMapping(2, 28, '/the/root/two.js', 2, 10, 'n', map, assert);
113
+ };
114
+
115
+ exports['test mapping tokens fuzzy'] = function (assert, util) {
116
+ var map = new SourceMapConsumer(util.testMap);
117
+
118
+ // Finding original positions
119
+ util.assertMapping(1, 20, '/the/root/one.js', 1, 21, 'bar', map, assert, true);
120
+ util.assertMapping(1, 30, '/the/root/one.js', 2, 10, 'baz', map, assert, true);
121
+ util.assertMapping(2, 12, '/the/root/two.js', 1, 11, null, map, assert, true);
122
+
123
+ // Finding generated positions
124
+ util.assertMapping(1, 18, '/the/root/one.js', 1, 22, 'bar', map, assert, null, true);
125
+ util.assertMapping(1, 28, '/the/root/one.js', 2, 13, 'baz', map, assert, null, true);
126
+ util.assertMapping(2, 9, '/the/root/two.js', 1, 16, null, map, assert, null, true);
127
+ };
128
+
129
+ exports['test mappings and end of lines'] = function (assert, util) {
130
+ var smg = new SourceMapGenerator({
131
+ file: 'foo.js'
132
+ });
133
+ smg.addMapping({
134
+ original: { line: 1, column: 1 },
135
+ generated: { line: 1, column: 1 },
136
+ source: 'bar.js'
137
+ });
138
+ smg.addMapping({
139
+ original: { line: 2, column: 2 },
140
+ generated: { line: 2, column: 2 },
141
+ source: 'bar.js'
142
+ });
143
+
144
+ var map = SourceMapConsumer.fromSourceMap(smg);
145
+
146
+ // When finding original positions, mappings end at the end of the line.
147
+ util.assertMapping(2, 1, null, null, null, null, map, assert, true)
148
+
149
+ // When finding generated positions, mappings do not end at the end of the line.
150
+ util.assertMapping(1, 1, 'bar.js', 2, 1, null, map, assert, null, true);
151
+ };
152
+
153
+ exports['test creating source map consumers with )]}\' prefix'] = function (assert, util) {
154
+ assert.doesNotThrow(function () {
155
+ var map = new SourceMapConsumer(")]}'" + JSON.stringify(util.testMap));
156
+ });
157
+ };
158
+
159
+ exports['test eachMapping'] = function (assert, util) {
160
+ var map;
161
+
162
+ map = new SourceMapConsumer(util.testMap);
163
+ var previousLine = -Infinity;
164
+ var previousColumn = -Infinity;
165
+ map.eachMapping(function (mapping) {
166
+ assert.ok(mapping.generatedLine >= previousLine);
167
+
168
+ assert.ok(mapping.source === '/the/root/one.js' || mapping.source === '/the/root/two.js');
169
+
170
+ if (mapping.generatedLine === previousLine) {
171
+ assert.ok(mapping.generatedColumn >= previousColumn);
172
+ previousColumn = mapping.generatedColumn;
173
+ }
174
+ else {
175
+ previousLine = mapping.generatedLine;
176
+ previousColumn = -Infinity;
177
+ }
178
+ });
179
+
180
+ map = new SourceMapConsumer(util.testMapNoSourceRoot);
181
+ map.eachMapping(function (mapping) {
182
+ assert.ok(mapping.source === 'one.js' || mapping.source === 'two.js');
183
+ });
184
+
185
+ map = new SourceMapConsumer(util.testMapEmptySourceRoot);
186
+ map.eachMapping(function (mapping) {
187
+ assert.ok(mapping.source === 'one.js' || mapping.source === 'two.js');
188
+ });
189
+ };
190
+
191
+ exports['test iterating over mappings in a different order'] = function (assert, util) {
192
+ var map = new SourceMapConsumer(util.testMap);
193
+ var previousLine = -Infinity;
194
+ var previousColumn = -Infinity;
195
+ var previousSource = "";
196
+ map.eachMapping(function (mapping) {
197
+ assert.ok(mapping.source >= previousSource);
198
+
199
+ if (mapping.source === previousSource) {
200
+ assert.ok(mapping.originalLine >= previousLine);
201
+
202
+ if (mapping.originalLine === previousLine) {
203
+ assert.ok(mapping.originalColumn >= previousColumn);
204
+ previousColumn = mapping.originalColumn;
205
+ }
206
+ else {
207
+ previousLine = mapping.originalLine;
208
+ previousColumn = -Infinity;
209
+ }
210
+ }
211
+ else {
212
+ previousSource = mapping.source;
213
+ previousLine = -Infinity;
214
+ previousColumn = -Infinity;
215
+ }
216
+ }, null, SourceMapConsumer.ORIGINAL_ORDER);
217
+ };
218
+
219
+ exports['test that we can set the context for `this` in eachMapping'] = function (assert, util) {
220
+ var map = new SourceMapConsumer(util.testMap);
221
+ var context = {};
222
+ map.eachMapping(function () {
223
+ assert.equal(this, context);
224
+ }, context);
225
+ };
226
+
227
+ exports['test that the `sourcesContent` field has the original sources'] = function (assert, util) {
228
+ var map = new SourceMapConsumer(util.testMapWithSourcesContent);
229
+ var sourcesContent = map.sourcesContent;
230
+
231
+ assert.equal(sourcesContent[0], ' ONE.foo = function (bar) {\n return baz(bar);\n };');
232
+ assert.equal(sourcesContent[1], ' TWO.inc = function (n) {\n return n + 1;\n };');
233
+ assert.equal(sourcesContent.length, 2);
234
+ };
235
+
236
+ exports['test that we can get the original sources for the sources'] = function (assert, util) {
237
+ var map = new SourceMapConsumer(util.testMapWithSourcesContent);
238
+ var sources = map.sources;
239
+
240
+ assert.equal(map.sourceContentFor(sources[0]), ' ONE.foo = function (bar) {\n return baz(bar);\n };');
241
+ assert.equal(map.sourceContentFor(sources[1]), ' TWO.inc = function (n) {\n return n + 1;\n };');
242
+ assert.equal(map.sourceContentFor("one.js"), ' ONE.foo = function (bar) {\n return baz(bar);\n };');
243
+ assert.equal(map.sourceContentFor("two.js"), ' TWO.inc = function (n) {\n return n + 1;\n };');
244
+ assert.throws(function () {
245
+ map.sourceContentFor("");
246
+ }, Error);
247
+ assert.throws(function () {
248
+ map.sourceContentFor("/the/root/three.js");
249
+ }, Error);
250
+ assert.throws(function () {
251
+ map.sourceContentFor("three.js");
252
+ }, Error);
253
+ };
254
+
255
+ exports['test that we can get the original source content with relative source paths'] = function (assert, util) {
256
+ var map = new SourceMapConsumer(util.testMapRelativeSources);
257
+ var sources = map.sources;
258
+
259
+ assert.equal(map.sourceContentFor(sources[0]), ' ONE.foo = function (bar) {\n return baz(bar);\n };');
260
+ assert.equal(map.sourceContentFor(sources[1]), ' TWO.inc = function (n) {\n return n + 1;\n };');
261
+ assert.equal(map.sourceContentFor("one.js"), ' ONE.foo = function (bar) {\n return baz(bar);\n };');
262
+ assert.equal(map.sourceContentFor("two.js"), ' TWO.inc = function (n) {\n return n + 1;\n };');
263
+ assert.throws(function () {
264
+ map.sourceContentFor("");
265
+ }, Error);
266
+ assert.throws(function () {
267
+ map.sourceContentFor("/the/root/three.js");
268
+ }, Error);
269
+ assert.throws(function () {
270
+ map.sourceContentFor("three.js");
271
+ }, Error);
272
+ };
273
+
274
+ exports['test sourceRoot + generatedPositionFor'] = function (assert, util) {
275
+ var map = new SourceMapGenerator({
276
+ sourceRoot: 'foo/bar',
277
+ file: 'baz.js'
278
+ });
279
+ map.addMapping({
280
+ original: { line: 1, column: 1 },
281
+ generated: { line: 2, column: 2 },
282
+ source: 'bang.coffee'
283
+ });
284
+ map.addMapping({
285
+ original: { line: 5, column: 5 },
286
+ generated: { line: 6, column: 6 },
287
+ source: 'bang.coffee'
288
+ });
289
+ map = new SourceMapConsumer(map.toString());
290
+
291
+ // Should handle without sourceRoot.
292
+ var pos = map.generatedPositionFor({
293
+ line: 1,
294
+ column: 1,
295
+ source: 'bang.coffee'
296
+ });
297
+
298
+ assert.equal(pos.line, 2);
299
+ assert.equal(pos.column, 2);
300
+
301
+ // Should handle with sourceRoot.
302
+ var pos = map.generatedPositionFor({
303
+ line: 1,
304
+ column: 1,
305
+ source: 'foo/bar/bang.coffee'
306
+ });
307
+
308
+ assert.equal(pos.line, 2);
309
+ assert.equal(pos.column, 2);
310
+ };
311
+
312
+ exports['test allGeneratedPositionsFor'] = function (assert, util) {
313
+ var map = new SourceMapGenerator({
314
+ file: 'generated.js'
315
+ });
316
+ map.addMapping({
317
+ original: { line: 1, column: 1 },
318
+ generated: { line: 2, column: 2 },
319
+ source: 'foo.coffee'
320
+ });
321
+ map.addMapping({
322
+ original: { line: 1, column: 1 },
323
+ generated: { line: 2, column: 2 },
324
+ source: 'bar.coffee'
325
+ });
326
+ map.addMapping({
327
+ original: { line: 2, column: 1 },
328
+ generated: { line: 3, column: 2 },
329
+ source: 'bar.coffee'
330
+ });
331
+ map.addMapping({
332
+ original: { line: 2, column: 2 },
333
+ generated: { line: 3, column: 3 },
334
+ source: 'bar.coffee'
335
+ });
336
+ map.addMapping({
337
+ original: { line: 3, column: 1 },
338
+ generated: { line: 4, column: 2 },
339
+ source: 'bar.coffee'
340
+ });
341
+ map = new SourceMapConsumer(map.toString());
342
+
343
+ var mappings = map.allGeneratedPositionsFor({
344
+ line: 2,
345
+ source: 'bar.coffee'
346
+ });
347
+
348
+ assert.equal(mappings.length, 2);
349
+ assert.equal(mappings[0].line, 3);
350
+ assert.equal(mappings[0].column, 2);
351
+ assert.equal(mappings[1].line, 3);
352
+ assert.equal(mappings[1].column, 3);
353
+ };
354
+
355
+ exports['test allGeneratedPositionsFor for line with no mappings'] = function (assert, util) {
356
+ var map = new SourceMapGenerator({
357
+ file: 'generated.js'
358
+ });
359
+ map.addMapping({
360
+ original: { line: 1, column: 1 },
361
+ generated: { line: 2, column: 2 },
362
+ source: 'foo.coffee'
363
+ });
364
+ map.addMapping({
365
+ original: { line: 1, column: 1 },
366
+ generated: { line: 2, column: 2 },
367
+ source: 'bar.coffee'
368
+ });
369
+ map.addMapping({
370
+ original: { line: 3, column: 1 },
371
+ generated: { line: 4, column: 2 },
372
+ source: 'bar.coffee'
373
+ });
374
+ map = new SourceMapConsumer(map.toString());
375
+
376
+ var mappings = map.allGeneratedPositionsFor({
377
+ line: 2,
378
+ source: 'bar.coffee'
379
+ });
380
+
381
+ assert.equal(mappings.length, 0);
382
+ };
383
+
384
+ exports['test allGeneratedPositionsFor source map with no mappings'] = function (assert, util) {
385
+ var map = new SourceMapGenerator({
386
+ file: 'generated.js'
387
+ });
388
+ map = new SourceMapConsumer(map.toString());
389
+
390
+ var mappings = map.allGeneratedPositionsFor({
391
+ line: 2,
392
+ source: 'bar.coffee'
393
+ });
394
+
395
+ assert.equal(mappings.length, 0);
396
+ };
397
+
398
+ exports['test computeColumnSpans'] = function (assert, util) {
399
+ var map = new SourceMapGenerator({
400
+ file: 'generated.js'
401
+ });
402
+ map.addMapping({
403
+ original: { line: 1, column: 1 },
404
+ generated: { line: 1, column: 1 },
405
+ source: 'foo.coffee'
406
+ });
407
+ map.addMapping({
408
+ original: { line: 2, column: 1 },
409
+ generated: { line: 2, column: 1 },
410
+ source: 'foo.coffee'
411
+ });
412
+ map.addMapping({
413
+ original: { line: 2, column: 2 },
414
+ generated: { line: 2, column: 10 },
415
+ source: 'foo.coffee'
416
+ });
417
+ map.addMapping({
418
+ original: { line: 2, column: 3 },
419
+ generated: { line: 2, column: 20 },
420
+ source: 'foo.coffee'
421
+ });
422
+ map.addMapping({
423
+ original: { line: 3, column: 1 },
424
+ generated: { line: 3, column: 1 },
425
+ source: 'foo.coffee'
426
+ });
427
+ map.addMapping({
428
+ original: { line: 3, column: 2 },
429
+ generated: { line: 3, column: 2 },
430
+ source: 'foo.coffee'
431
+ });
432
+ map = new SourceMapConsumer(map.toString());
433
+
434
+ map.computeColumnSpans();
435
+
436
+ var mappings = map.allGeneratedPositionsFor({
437
+ line: 1,
438
+ source: 'foo.coffee'
439
+ });
440
+
441
+ assert.equal(mappings.length, 1);
442
+ assert.equal(mappings[0].lastColumn, Infinity);
443
+
444
+ var mappings = map.allGeneratedPositionsFor({
445
+ line: 2,
446
+ source: 'foo.coffee'
447
+ });
448
+
449
+ assert.equal(mappings.length, 3);
450
+ assert.equal(mappings[0].lastColumn, 9);
451
+ assert.equal(mappings[1].lastColumn, 19);
452
+ assert.equal(mappings[2].lastColumn, Infinity);
453
+
454
+ var mappings = map.allGeneratedPositionsFor({
455
+ line: 3,
456
+ source: 'foo.coffee'
457
+ });
458
+
459
+ assert.equal(mappings.length, 2);
460
+ assert.equal(mappings[0].lastColumn, 1);
461
+ assert.equal(mappings[1].lastColumn, Infinity);
462
+ };
463
+
464
+ exports['test sourceRoot + originalPositionFor'] = function (assert, util) {
465
+ var map = new SourceMapGenerator({
466
+ sourceRoot: 'foo/bar',
467
+ file: 'baz.js'
468
+ });
469
+ map.addMapping({
470
+ original: { line: 1, column: 1 },
471
+ generated: { line: 2, column: 2 },
472
+ source: 'bang.coffee'
473
+ });
474
+ map = new SourceMapConsumer(map.toString());
475
+
476
+ var pos = map.originalPositionFor({
477
+ line: 2,
478
+ column: 2,
479
+ });
480
+
481
+ // Should always have the prepended source root
482
+ assert.equal(pos.source, 'foo/bar/bang.coffee');
483
+ assert.equal(pos.line, 1);
484
+ assert.equal(pos.column, 1);
485
+ };
486
+
487
+ exports['test github issue #56'] = function (assert, util) {
488
+ var map = new SourceMapGenerator({
489
+ sourceRoot: 'http://',
490
+ file: 'www.example.com/foo.js'
491
+ });
492
+ map.addMapping({
493
+ original: { line: 1, column: 1 },
494
+ generated: { line: 2, column: 2 },
495
+ source: 'www.example.com/original.js'
496
+ });
497
+ map = new SourceMapConsumer(map.toString());
498
+
499
+ var sources = map.sources;
500
+ assert.equal(sources.length, 1);
501
+ assert.equal(sources[0], 'http://www.example.com/original.js');
502
+ };
503
+
504
+ exports['test github issue #43'] = function (assert, util) {
505
+ var map = new SourceMapGenerator({
506
+ sourceRoot: 'http://example.com',
507
+ file: 'foo.js'
508
+ });
509
+ map.addMapping({
510
+ original: { line: 1, column: 1 },
511
+ generated: { line: 2, column: 2 },
512
+ source: 'http://cdn.example.com/original.js'
513
+ });
514
+ map = new SourceMapConsumer(map.toString());
515
+
516
+ var sources = map.sources;
517
+ assert.equal(sources.length, 1,
518
+ 'Should only be one source.');
519
+ assert.equal(sources[0], 'http://cdn.example.com/original.js',
520
+ 'Should not be joined with the sourceRoot.');
521
+ };
522
+
523
+ exports['test absolute path, but same host sources'] = function (assert, util) {
524
+ var map = new SourceMapGenerator({
525
+ sourceRoot: 'http://example.com/foo/bar',
526
+ file: 'foo.js'
527
+ });
528
+ map.addMapping({
529
+ original: { line: 1, column: 1 },
530
+ generated: { line: 2, column: 2 },
531
+ source: '/original.js'
532
+ });
533
+ map = new SourceMapConsumer(map.toString());
534
+
535
+ var sources = map.sources;
536
+ assert.equal(sources.length, 1,
537
+ 'Should only be one source.');
538
+ assert.equal(sources[0], 'http://example.com/original.js',
539
+ 'Source should be relative the host of the source root.');
540
+ };
541
+
542
+ exports['test github issue #64'] = function (assert, util) {
543
+ var map = new SourceMapConsumer({
544
+ "version": 3,
545
+ "file": "foo.js",
546
+ "sourceRoot": "http://example.com/",
547
+ "sources": ["/a"],
548
+ "names": [],
549
+ "mappings": "AACA",
550
+ "sourcesContent": ["foo"]
551
+ });
552
+
553
+ assert.equal(map.sourceContentFor("a"), "foo");
554
+ assert.equal(map.sourceContentFor("/a"), "foo");
555
+ };
556
+
557
+ exports['test bug 885597'] = function (assert, util) {
558
+ var map = new SourceMapConsumer({
559
+ "version": 3,
560
+ "file": "foo.js",
561
+ "sourceRoot": "file:///Users/AlGore/Invented/The/Internet/",
562
+ "sources": ["/a"],
563
+ "names": [],
564
+ "mappings": "AACA",
565
+ "sourcesContent": ["foo"]
566
+ });
567
+
568
+ var s = map.sources[0];
569
+ assert.equal(map.sourceContentFor(s), "foo");
570
+ };
571
+
572
+ exports['test github issue #72, duplicate sources'] = function (assert, util) {
573
+ var map = new SourceMapConsumer({
574
+ "version": 3,
575
+ "file": "foo.js",
576
+ "sources": ["source1.js", "source1.js", "source3.js"],
577
+ "names": [],
578
+ "mappings": ";EAAC;;IAEE;;MEEE",
579
+ "sourceRoot": "http://example.com"
580
+ });
581
+
582
+ var pos = map.originalPositionFor({
583
+ line: 2,
584
+ column: 2
585
+ });
586
+ assert.equal(pos.source, 'http://example.com/source1.js');
587
+ assert.equal(pos.line, 1);
588
+ assert.equal(pos.column, 1);
589
+
590
+ var pos = map.originalPositionFor({
591
+ line: 4,
592
+ column: 4
593
+ });
594
+ assert.equal(pos.source, 'http://example.com/source1.js');
595
+ assert.equal(pos.line, 3);
596
+ assert.equal(pos.column, 3);
597
+
598
+ var pos = map.originalPositionFor({
599
+ line: 6,
600
+ column: 6
601
+ });
602
+ assert.equal(pos.source, 'http://example.com/source3.js');
603
+ assert.equal(pos.line, 5);
604
+ assert.equal(pos.column, 5);
605
+ };
606
+
607
+ exports['test github issue #72, duplicate names'] = function (assert, util) {
608
+ var map = new SourceMapConsumer({
609
+ "version": 3,
610
+ "file": "foo.js",
611
+ "sources": ["source.js"],
612
+ "names": ["name1", "name1", "name3"],
613
+ "mappings": ";EAACA;;IAEEA;;MAEEE",
614
+ "sourceRoot": "http://example.com"
615
+ });
616
+
617
+ var pos = map.originalPositionFor({
618
+ line: 2,
619
+ column: 2
620
+ });
621
+ assert.equal(pos.name, 'name1');
622
+ assert.equal(pos.line, 1);
623
+ assert.equal(pos.column, 1);
624
+
625
+ var pos = map.originalPositionFor({
626
+ line: 4,
627
+ column: 4
628
+ });
629
+ assert.equal(pos.name, 'name1');
630
+ assert.equal(pos.line, 3);
631
+ assert.equal(pos.column, 3);
632
+
633
+ var pos = map.originalPositionFor({
634
+ line: 6,
635
+ column: 6
636
+ });
637
+ assert.equal(pos.name, 'name3');
638
+ assert.equal(pos.line, 5);
639
+ assert.equal(pos.column, 5);
640
+ };
641
+
642
+ exports['test SourceMapConsumer.fromSourceMap'] = function (assert, util) {
643
+ var smg = new SourceMapGenerator({
644
+ sourceRoot: 'http://example.com/',
645
+ file: 'foo.js'
646
+ });
647
+ smg.addMapping({
648
+ original: { line: 1, column: 1 },
649
+ generated: { line: 2, column: 2 },
650
+ source: 'bar.js'
651
+ });
652
+ smg.addMapping({
653
+ original: { line: 2, column: 2 },
654
+ generated: { line: 4, column: 4 },
655
+ source: 'baz.js',
656
+ name: 'dirtMcGirt'
657
+ });
658
+ smg.setSourceContent('baz.js', 'baz.js content');
659
+
660
+ var smc = SourceMapConsumer.fromSourceMap(smg);
661
+ assert.equal(smc.file, 'foo.js');
662
+ assert.equal(smc.sourceRoot, 'http://example.com/');
663
+ assert.equal(smc.sources.length, 2);
664
+ assert.equal(smc.sources[0], 'http://example.com/bar.js');
665
+ assert.equal(smc.sources[1], 'http://example.com/baz.js');
666
+ assert.equal(smc.sourceContentFor('baz.js'), 'baz.js content');
667
+
668
+ var pos = smc.originalPositionFor({
669
+ line: 2,
670
+ column: 2
671
+ });
672
+ assert.equal(pos.line, 1);
673
+ assert.equal(pos.column, 1);
674
+ assert.equal(pos.source, 'http://example.com/bar.js');
675
+ assert.equal(pos.name, null);
676
+
677
+ pos = smc.generatedPositionFor({
678
+ line: 1,
679
+ column: 1,
680
+ source: 'http://example.com/bar.js'
681
+ });
682
+ assert.equal(pos.line, 2);
683
+ assert.equal(pos.column, 2);
684
+
685
+ pos = smc.originalPositionFor({
686
+ line: 4,
687
+ column: 4
688
+ });
689
+ assert.equal(pos.line, 2);
690
+ assert.equal(pos.column, 2);
691
+ assert.equal(pos.source, 'http://example.com/baz.js');
692
+ assert.equal(pos.name, 'dirtMcGirt');
693
+
694
+ pos = smc.generatedPositionFor({
695
+ line: 2,
696
+ column: 2,
697
+ source: 'http://example.com/baz.js'
698
+ });
699
+ assert.equal(pos.line, 4);
700
+ assert.equal(pos.column, 4);
701
+ };
702
+ });