old_sql 1.12.0 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. data/public/javascripts/old_sql/MochiKit-1.4.2/Changes +362 -0
  2. data/public/javascripts/old_sql/MochiKit-1.4.2/LICENSE.txt +69 -0
  3. data/public/javascripts/old_sql/MochiKit-1.4.2/MANIFEST +179 -0
  4. data/public/javascripts/old_sql/MochiKit-1.4.2/META.json +17 -0
  5. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Async.html +814 -0
  6. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Base.html +1703 -0
  7. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Color.html +755 -0
  8. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/DOM.html +1197 -0
  9. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/DateTime.html +168 -0
  10. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/DragAndDrop.html +187 -0
  11. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Format.html +300 -0
  12. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Iter.html +524 -0
  13. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Logging.html +420 -0
  14. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/LoggingPane.html +142 -0
  15. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Position.html +38 -0
  16. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Selector.html +240 -0
  17. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Signal.html +508 -0
  18. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Sortable.html +244 -0
  19. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Style.html +385 -0
  20. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/VersionHistory.html +384 -0
  21. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/Visual.html +1161 -0
  22. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/html/MochiKit/index.html +447 -0
  23. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/js/toc.js +113 -0
  24. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Async.rst +767 -0
  25. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Base.rst +1445 -0
  26. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Color.rst +651 -0
  27. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/DOM.rst +1143 -0
  28. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/DateTime.rst +145 -0
  29. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/DragAndDrop.rst +197 -0
  30. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Format.rst +258 -0
  31. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Iter.rst +454 -0
  32. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Logging.rst +348 -0
  33. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/LoggingPane.rst +128 -0
  34. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Position.rst +26 -0
  35. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Selector.rst +203 -0
  36. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Signal.rst +498 -0
  37. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Sortable.rst +186 -0
  38. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Style.rst +353 -0
  39. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/VersionHistory.rst +362 -0
  40. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/Visual.rst +895 -0
  41. data/public/javascripts/old_sql/MochiKit-1.4.2/doc/rst/MochiKit/index.rst +83 -0
  42. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/ajax_tables.css +69 -0
  43. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/ajax_tables.js +401 -0
  44. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/domains.json +10 -0
  45. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/domains.xml +40 -0
  46. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/ajax_tables/index.html +96 -0
  47. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/color_wheel/color_wheel.css +4 -0
  48. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/color_wheel/color_wheel.js +95 -0
  49. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/color_wheel/index.html +31 -0
  50. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/dnd_sortable.css +23 -0
  51. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/dropmarker.png +0 -0
  52. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/icon.png +0 -0
  53. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/index.html +54 -0
  54. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable2_test.html +150 -0
  55. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable3_test.html +42 -0
  56. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable4_test.html +90 -0
  57. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable5_test.html +29 -0
  58. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable_test.html +38 -0
  59. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/dnd_sortable/sortable_tree_test.html +189 -0
  60. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/draggable/draggable.css +28 -0
  61. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/draggable/draggable.js +73 -0
  62. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/draggable/index.html +38 -0
  63. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_bigslide.html +36 -0
  64. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_blind.html +65 -0
  65. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_blindslide.html +31 -0
  66. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_combi.css +18 -0
  67. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_fadeappear.html +61 -0
  68. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_grow_shrink.html +38 -0
  69. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_onload.html +67 -0
  70. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_queue.html +67 -0
  71. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_queue_limit.html +30 -0
  72. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_scroll.html +483 -0
  73. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/effects_slide.html +62 -0
  74. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/full.html +71 -0
  75. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/icon.png +0 -0
  76. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/effects/index.html +150 -0
  77. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/interpreter/index.html +88 -0
  78. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/interpreter/interpreter.css +54 -0
  79. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/interpreter/interpreter.js +373 -0
  80. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/key_events/index.html +78 -0
  81. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/key_events/key_events.css +5 -0
  82. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/key_events/key_events.js +85 -0
  83. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/logging_pane/index.html +46 -0
  84. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/logging_pane/logging_pane.css +78 -0
  85. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/logging_pane/logging_pane.js +11 -0
  86. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mochiregexp/index.html +74 -0
  87. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mochiregexp/mochiregexp.css +73 -0
  88. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mochiregexp/mochiregexp.js +125 -0
  89. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mouse_events/index.html +88 -0
  90. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mouse_events/mouse_events.css +17 -0
  91. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/mouse_events/mouse_events.js +59 -0
  92. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/rounded_corners/index.html +28 -0
  93. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/rounded_corners/rounded_corners.css +3 -0
  94. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/rounded_corners/rounded_corners.js +19 -0
  95. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_boxes.html +45 -0
  96. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_full.html +119 -0
  97. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_ghost.html +40 -0
  98. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_hoverclass.html +43 -0
  99. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_scroll.html +91 -0
  100. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/dnd_snap.html +54 -0
  101. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/index.html +93 -0
  102. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/simple_dnd/simple_dnd.css +64 -0
  103. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/sortable_tables/index.html +71 -0
  104. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/sortable_tables/sortable_tables.css +66 -0
  105. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/sortable_tables/sortable_tables.js +203 -0
  106. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/SyntaxHighlighter.css +177 -0
  107. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/Tests.html +339 -0
  108. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushCSharp.js +30 -0
  109. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushDelphi.js +31 -0
  110. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushJScript.js +22 -0
  111. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushPhp.js +23 -0
  112. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushPython.js +71 -0
  113. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushSql.js +40 -0
  114. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushVb.js +29 -0
  115. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shBrushXml.js +61 -0
  116. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/lib/SyntaxHighlighter/shCore.js +622 -0
  117. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/view-source.css +1 -0
  118. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/view-source.html +19 -0
  119. data/public/javascripts/old_sql/MochiKit-1.4.2/examples/view-source/view-source.js +70 -0
  120. data/public/javascripts/old_sql/MochiKit-1.4.2/include/_img/bg_docheader.gif +0 -0
  121. data/public/javascripts/old_sql/MochiKit-1.4.2/include/_img/g_bullet.gif +0 -0
  122. data/public/javascripts/old_sql/MochiKit-1.4.2/include/_img/g_logo_doc.gif +0 -0
  123. data/public/javascripts/old_sql/MochiKit-1.4.2/include/css/documentation.css +130 -0
  124. data/public/javascripts/old_sql/MochiKit-1.4.2/include/css/general.css +48 -0
  125. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Async.js +682 -0
  126. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Base.js +1489 -0
  127. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Color.js +863 -0
  128. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/DOM.js +1256 -0
  129. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/DateTime.js +222 -0
  130. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/DragAndDrop.js +793 -0
  131. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Format.js +304 -0
  132. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Iter.js +844 -0
  133. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Logging.js +315 -0
  134. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/LoggingPane.js +353 -0
  135. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/MochiKit.js +188 -0
  136. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/MockDOM.js +115 -0
  137. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Position.js +236 -0
  138. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Selector.js +415 -0
  139. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Signal.js +897 -0
  140. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Sortable.js +589 -0
  141. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Style.js +594 -0
  142. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Test.js +162 -0
  143. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/Visual.js +2026 -0
  144. data/public/javascripts/old_sql/MochiKit-1.4.2/lib/MochiKit/__package__.js +18 -0
  145. data/public/javascripts/old_sql/MochiKit-1.4.2/packed/MochiKit/MochiKit.js +7829 -0
  146. data/public/javascripts/old_sql/MochiKit-1.4.2/packed/MochiKit/__package__.js +6 -0
  147. data/public/javascripts/old_sql/MochiKit-1.4.2/packed/MochiKit/customize.html +251 -0
  148. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/FakeJSAN.js +40 -0
  149. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/SimpleTest/SimpleTest.js +381 -0
  150. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/SimpleTest/TestRunner.js +159 -0
  151. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/SimpleTest/test.css +28 -0
  152. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/cli.js +6 -0
  153. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/index.html +25 -0
  154. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/standalone.js +16 -0
  155. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Base.js +577 -0
  156. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Color.js +137 -0
  157. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_DateTime.js +52 -0
  158. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_DragAndDrop.js +30 -0
  159. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Format.js +89 -0
  160. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Iter.js +186 -0
  161. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Logging.js +88 -0
  162. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Async.html +408 -0
  163. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Async.json +1 -0
  164. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Base.html +34 -0
  165. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Color.html +84 -0
  166. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-DOM-Safari.html +48 -0
  167. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-DOM.html +363 -0
  168. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-DateTime.html +39 -0
  169. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-DragAndDrop.html +54 -0
  170. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Format.html +39 -0
  171. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Iter.html +38 -0
  172. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-JSAN.html +32 -0
  173. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Logging.html +40 -0
  174. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-MochiKit.html +18 -0
  175. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Selector.html +295 -0
  176. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Signal.html +43 -0
  177. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Style.html +223 -0
  178. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_MochiKit-Visual.html +197 -0
  179. data/public/javascripts/old_sql/MochiKit-1.4.2/tests/test_Signal.js +481 -0
  180. data/public/javascripts/old_sql/plotkit-0.9.1/COPYING +28 -0
  181. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/Base.js +406 -0
  182. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/Canvas.js +683 -0
  183. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/EasyPlot.js +161 -0
  184. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/Layout.js +756 -0
  185. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/PlotKit.js +151 -0
  186. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/PlotKit_Packed.js +2177 -0
  187. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/SVG.js +705 -0
  188. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/SweetCanvas.js +348 -0
  189. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/SweetSVG.js +247 -0
  190. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/dummy.svg +9 -0
  191. data/public/javascripts/old_sql/plotkit-0.9.1/PlotKit/excanvas.js +723 -0
  192. data/public/javascripts/old_sql/plotkit-0.9.1/README +1 -0
  193. data/public/javascripts/old_sql/plotkit-0.9.1/doc/MochiKitAdditions.html +2 -0
  194. data/public/javascripts/old_sql/plotkit-0.9.1/doc/MochiKitAdditions.txt +2 -0
  195. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Base.html +302 -0
  196. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Base.txt +139 -0
  197. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Canvas.html +172 -0
  198. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Canvas.txt +81 -0
  199. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.EasyPlot.html +155 -0
  200. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.EasyPlot.txt +50 -0
  201. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Layout.html +428 -0
  202. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Layout.txt +330 -0
  203. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.QuickStart.html +368 -0
  204. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.QuickStart.txt +256 -0
  205. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Renderer.html +436 -0
  206. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.Renderer.txt +299 -0
  207. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SVG.html +159 -0
  208. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SVG.txt +64 -0
  209. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SweetCanvas.html +131 -0
  210. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SweetCanvas.txt +34 -0
  211. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SweetSVG.html +131 -0
  212. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.SweetSVG.txt +34 -0
  213. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.html +334 -0
  214. data/public/javascripts/old_sql/plotkit-0.9.1/doc/PlotKit.txt +151 -0
  215. data/public/javascripts/old_sql/plotkit-0.9.1/doc/SVGCanvasCompat.html +304 -0
  216. data/public/javascripts/old_sql/plotkit-0.9.1/doc/SVGCanvasCompat.txt +144 -0
  217. data/public/javascripts/old_sql/plotkit-0.9.1/doc/barsample.png +0 -0
  218. data/public/javascripts/old_sql/plotkit-0.9.1/doc/black.png +0 -0
  219. data/public/javascripts/old_sql/plotkit-0.9.1/doc/blue.png +0 -0
  220. data/public/javascripts/old_sql/plotkit-0.9.1/doc/cyan.png +0 -0
  221. data/public/javascripts/old_sql/plotkit-0.9.1/doc/doc.css +62 -0
  222. data/public/javascripts/old_sql/plotkit-0.9.1/doc/generate.py +37 -0
  223. data/public/javascripts/old_sql/plotkit-0.9.1/doc/green.png +0 -0
  224. data/public/javascripts/old_sql/plotkit-0.9.1/doc/orange.png +0 -0
  225. data/public/javascripts/old_sql/plotkit-0.9.1/doc/piesample.png +0 -0
  226. data/public/javascripts/old_sql/plotkit-0.9.1/doc/purple.png +0 -0
  227. data/public/javascripts/old_sql/plotkit-0.9.1/doc/red.png +0 -0
  228. data/public/javascripts/old_sql/plotkit-0.9.1/scripts/custom_rhino.jar +0 -0
  229. data/public/javascripts/old_sql/plotkit-0.9.1/scripts/pack.py +58 -0
  230. data/public/javascripts/old_sql/plotkit-0.9.1/tests/axis.html +31 -0
  231. data/public/javascripts/old_sql/plotkit-0.9.1/tests/basic.html +25 -0
  232. data/public/javascripts/old_sql/plotkit-0.9.1/tests/basic.js +143 -0
  233. data/public/javascripts/old_sql/plotkit-0.9.1/tests/debug.html +56 -0
  234. data/public/javascripts/old_sql/plotkit-0.9.1/tests/demo-svg.html +58 -0
  235. data/public/javascripts/old_sql/plotkit-0.9.1/tests/demo-svg.js +133 -0
  236. data/public/javascripts/old_sql/plotkit-0.9.1/tests/demo.html +57 -0
  237. data/public/javascripts/old_sql/plotkit-0.9.1/tests/demo.js +136 -0
  238. data/public/javascripts/old_sql/plotkit-0.9.1/tests/dynamic.html +161 -0
  239. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/firefox.png +0 -0
  240. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/konqueror.png +0 -0
  241. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/mozilla.ico +0 -0
  242. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/msie.gif +0 -0
  243. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/opera.ico +0 -0
  244. data/public/javascripts/old_sql/plotkit-0.9.1/tests/img/safari.gif +0 -0
  245. data/public/javascripts/old_sql/plotkit-0.9.1/tests/labels-img.html +38 -0
  246. data/public/javascripts/old_sql/plotkit-0.9.1/tests/labels.html +43 -0
  247. data/public/javascripts/old_sql/plotkit-0.9.1/tests/prototype_compat.html +28 -0
  248. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart-easy.html +29 -0
  249. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart-horiz.html +53 -0
  250. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart-neg.html +29 -0
  251. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart-svg.html +61 -0
  252. data/public/javascripts/old_sql/plotkit-0.9.1/tests/quickstart.html +57 -0
  253. data/public/javascripts/old_sql/plotkit-0.9.1/tests/sample.txt +6 -0
  254. data/public/javascripts/old_sql/plotkit-0.9.1/tests/svg-sweet.html +29 -0
  255. data/public/javascripts/old_sql/plotkit-0.9.1/tests/svg-sweet.js +141 -0
  256. data/public/javascripts/old_sql/plotkit-0.9.1/tests/svg.html +26 -0
  257. data/public/javascripts/old_sql/plotkit-0.9.1/tests/svg.js +147 -0
  258. data/public/javascripts/old_sql/plotkit-0.9.1/tests/sweet.html +24 -0
  259. data/public/javascripts/old_sql/plotkit-0.9.1/tests/sweet.js +89 -0
  260. data/public/javascripts/old_sql/plotkit-0.9.1/tests/tests.css +66 -0
  261. data/public/javascripts/old_sql/plotkit-0.9.1/tests/testsvg.html +20 -0
  262. data/public/javascripts/old_sql/plotkit-0.9.1/tests/testsvg.js +31 -0
  263. metadata +264 -2
@@ -0,0 +1,6 @@
1
+ dojo.kwCompoundRequire({
2
+ "common": [
3
+ "MochiKit.MochiKit"
4
+ ]
5
+ });
6
+ dojo.provide("MochiKit.*");
@@ -0,0 +1,251 @@
1
+ <html>
2
+ <head>
3
+ <title>MochiKit Customizer</title>
4
+ <link type="text/css" rel="stylesheet" href="../../include/css/documentation.css" />
5
+ <style type="text/css">
6
+ td {
7
+ vertical-align: top;
8
+ }
9
+ label {
10
+ font-weight: bold;
11
+ font-size: 14px;
12
+ }
13
+ input {
14
+ margin: 0;
15
+ vertical-align: -3px;
16
+ }
17
+ .info {
18
+ color: #888888;
19
+ }
20
+ </style>
21
+ <script type="text/javascript" src="MochiKit.js"></script>
22
+ <script type="text/javascript">
23
+ // Predefined module sets
24
+ var SETS = {
25
+ core: { name: "Non-Web Modules", deps: ["Base", "DateTime", "Format", "Iter"] },
26
+ standard: { name: "Web Modules", deps: ["Base", "DateTime", "Format", "Iter", "Async", "Color", "DOM", "Logging", "LoggingPane", "Selector", "Signal", "Style"] },
27
+ all: { name: "Extension Modules", deps: null }
28
+ };
29
+ var MODULES = { "Base": { deps: [], packed: "" } };
30
+
31
+ // Starts loading the packed library
32
+ function doInit() {
33
+ var url = $$("head script[src*=MochiKit.js]")[0].src;
34
+ var d = doSimpleXMLHttpRequest(url);
35
+ d.addCallback(doParseScript);
36
+ d.addErrback(function(err) {
37
+ alert("Error: " + err.toString());
38
+ });
39
+ }
40
+
41
+ // Parses the packed library into modules
42
+ function doParseScript(xhr) {
43
+ var src = xhr.responseText;
44
+ var moduleName = "Base";
45
+ var pos = 0;
46
+ while ((pos = src.indexOf("MochiKit.Base._deps")) >= 0) {
47
+ if (pos > 0) {
48
+ MODULES[moduleName].packed += src.substring(0, pos);
49
+ src = src.substring(pos);
50
+ }
51
+ var names = doFindStringLiterals(src);
52
+ if (names.length > 0) {
53
+ moduleName = names[0];
54
+ MODULES[moduleName] = { deps: names.slice(1), packed: "" };
55
+ }
56
+ pos = src.indexOf("MochiKit.Base._exportSymbols");
57
+ pos = src.indexOf("\n", pos);
58
+ MODULES[moduleName].packed += src.substring(0, pos + 1);
59
+ src = src.substring(pos + 1);
60
+ }
61
+ MODULES["Base"].packedTail = src;
62
+ for (var key in MODULES) {
63
+ var m = MODULES[key];
64
+ m.size = m.packed.length;
65
+ if (m.packedTail) {
66
+ m.size += m.packedTail.length;
67
+ }
68
+ }
69
+ SETS.all.deps = keys(MODULES);
70
+ for (var key in SETS) {
71
+ var s = SETS[key];
72
+ s.size = 0;
73
+ for (var i = 0; i < s.deps.length; i++) {
74
+ s.size += MODULES[s.deps[i]].size;
75
+ }
76
+ }
77
+ doRender();
78
+ }
79
+
80
+ // Find all string literals on the first line
81
+ function doFindStringLiterals(str) {
82
+ var res = [];
83
+ var endPos = str.indexOf("\n");
84
+ var line = str.substring(0, (endPos > 0) ? endPos : str.length);
85
+ var matches = line.match(/"([^"]*)"|'([^']*)'/g);
86
+ for (var i = 0; i < matches.length; i++) {
87
+ var name = matches[i];
88
+ res.push(name.substring(1, name.length - 1));
89
+ }
90
+ return res;
91
+ }
92
+
93
+ // Renders the module selection UI
94
+ function doRender() {
95
+ var nf = numberFormatter("0.0 kB");
96
+ var select = $("packSets");
97
+ var cell = $("packModules");
98
+ for (var key in SETS) {
99
+ var s = SETS[key];
100
+ var text = s.name + " \u2014 " + nf(s.size / 1024);
101
+ select.appendChild(OPTION({ value: key }, text));
102
+ if (key != "core") {
103
+ cell.appendChild(HR());
104
+ }
105
+ cell.appendChild(H3({}, s.name, ":"));
106
+ for (var i = 0; i < s.deps.length; i++) {
107
+ var name = s.deps[i];
108
+ var m = MODULES[name];
109
+ if (m.dom == null) {
110
+ m.dom = INPUT({ type: "checkbox" });
111
+ if (name == "Base") {
112
+ m.dom.disabled = true;
113
+ }
114
+ var text = " \u2014 " + nf(m.size / 1024);
115
+ if (m.deps.length > 1) {
116
+ text += " \u2014 uses " + m.deps.slice(1).join(", ");
117
+ }
118
+ var span = SPAN({ "class": "info" }, text);
119
+ cell.appendChild(LABEL({}, m.dom, " MochiKit." + name, span));
120
+ cell.appendChild(BR());
121
+ connect(m.dom, "onclick", partial(doChangeModule, name));
122
+ }
123
+ }
124
+ }
125
+ select.appendChild(OPTION({ value: "custom" }, "Selected Modules"));
126
+ select.selectedIndex = 1;
127
+ connect(select, "onchange", doChangeSet);
128
+ doChangeSet();
129
+ }
130
+
131
+ // Handle module set changes
132
+ function doChangeSet() {
133
+ var key = $("packSets").value;
134
+ var s = SETS[key];
135
+ if (s != null) {
136
+ doCheckBoxes(s.deps, true);
137
+ var fun = function(name) { return findValue(s.deps, name) < 0; };
138
+ var other = filter(fun, keys(MODULES));
139
+ doCheckBoxes(other, false);
140
+ doUpdateCustom();
141
+ }
142
+ }
143
+
144
+ // Handle individual module changes
145
+ function doChangeModule(name) {
146
+ var m = MODULES[name];
147
+ if (m.dom.checked) {
148
+ var deps = m.deps.slice(0);
149
+ for (var i = 0; i < deps.length; i++) {
150
+ var sub = MODULES[deps[i]].deps;
151
+ for (var j = 0; j < sub.length; j++) {
152
+ if (findValue(deps, sub[j]) < 0) {
153
+ deps.push(sub[j]);
154
+ }
155
+ }
156
+ }
157
+ } else {
158
+ var deps = [name];
159
+ for (var i = 0; i < deps.length; i++) {
160
+ for (var id in MODULES) {
161
+ if (findValue(deps, id) < 0 &&
162
+ findValue(MODULES[id].deps, deps[i]) >= 0) {
163
+ deps.push(id);
164
+ }
165
+ }
166
+ }
167
+ }
168
+ doCheckBoxes(deps, m.dom.checked);
169
+ doUpdateCustom();
170
+ var select = $("packSets");
171
+ select.selectedIndex = 3;
172
+ }
173
+
174
+ // Checks or unchecks the specified modules
175
+ function doCheckBoxes(names, checked) {
176
+ for (var i = 0; i < names.length; i++) {
177
+ var name = names[i];
178
+ var input = MODULES[name].dom;
179
+ if (input.checked != checked) {
180
+ input.checked = checked;
181
+ var color = checked ? '#aaffaa' : '#ffaaaa';
182
+ Highlight(input.parentNode, { startcolor: color });
183
+ }
184
+ }
185
+ }
186
+
187
+ function doUpdateCustom() {
188
+ var select = $("packSets");
189
+ var nf = numberFormatter("0.0 kB");
190
+ var size = 0;
191
+ for (var id in MODULES) {
192
+ var m = MODULES[id];
193
+ if (m.dom.checked) {
194
+ size += m.size;
195
+ }
196
+ }
197
+ var option = select.childNodes[3];
198
+ replaceChildNodes(option, "Selected Modules \u2014 " + nf(size / 1024));
199
+ }
200
+
201
+ function doSubmit() {
202
+ var packed = "";
203
+ if (!$("packExport").checked) {
204
+ packed += "// Config options\n";
205
+ packed += "MochiKit={__export__:false};\n\n";
206
+ }
207
+ for (var id in MODULES) {
208
+ var m = MODULES[id];
209
+ if (m.dom.checked) {
210
+ packed += m.packed;
211
+ }
212
+ }
213
+ packed += MODULES["Base"].packedTail;
214
+ $("packData").value = packed;
215
+ return true;
216
+ }
217
+ </script>
218
+ </head>
219
+ <body onload="doInit()">
220
+ <a href="http://mochikit.com/"><img id="mainlink" src="../../include/_img/g_logo_doc.gif" alt="I &hearts; MochiKit" title="I &hearts; MochiKit" /></a>
221
+ <div class="document">
222
+ <div class="section">
223
+ <h1>MochiKit Customizer</h1>
224
+
225
+ <form action="http://mochikit-dot-com.appspot.com/download" method="POST" onsubmit="return doSubmit();">
226
+ <table>
227
+ <tbody>
228
+ <tr>
229
+ <td style="border-right: 1px solid rgb(204, 204, 204); padding-right: 10px;">
230
+ <h3>Module Sets:</h3>
231
+ <select id="packSets"></select>
232
+ <hr style="margin-top: 200px;">
233
+ <h3>Additional Options:</h3>
234
+ <label><input id="packExport" checked="checked" type="checkbox"> Export Globals</label><br>
235
+ </td>
236
+ <td id="packModules" style="padding-left: 10px;">
237
+ </td>
238
+ </tr>
239
+ <tr>
240
+ <td colspan="2" style="padding-top: 20px;">
241
+ <button type="submit">Create Customized MochiKit</button>
242
+ </td>
243
+ </tr>
244
+ </tbody>
245
+ </table>
246
+ <input id="packData" type="hidden" name="data" value="" />
247
+ </form>
248
+ </div>
249
+ </div>
250
+ </body>
251
+ </html>
@@ -0,0 +1,40 @@
1
+ var JSAN = {
2
+ global: this,
3
+ use: function (module, symbols) {
4
+ var components = module.split(/\./);
5
+ var fn = components.join('/') + '.js';
6
+ var o = JSAN.global;
7
+ var i, c;
8
+ for (i = 0; i < components.length; i++) {
9
+ o = o[components[i]];
10
+ if (typeof(o) == 'undefined') {
11
+ break;
12
+ }
13
+ }
14
+ if (typeof(o) != 'undefined') {
15
+ return o;
16
+ }
17
+
18
+ load(fn);
19
+ o = JSAN.global;
20
+ for (i = 0; i < components.length; i++) {
21
+ o = o[components[i]];
22
+ if (typeof(o) == 'undefined') {
23
+ return undefined;
24
+ }
25
+ }
26
+ if (!symbols) {
27
+ var tags = o.EXPORT_TAGS;
28
+ if (tags) {
29
+ symbols = tags[':common'] || tags[':all'];
30
+ }
31
+ }
32
+ if (symbols) {
33
+ for (i = 0; i < symbols.length; i++) {
34
+ c = symbols[i];
35
+ JSAN.global[c] = o[c];
36
+ }
37
+ }
38
+ return o;
39
+ }
40
+ };
@@ -0,0 +1,381 @@
1
+ /**
2
+ * SimpleTest, a partial Test.Simple/Test.More API compatible test library.
3
+ *
4
+ * Why?
5
+ *
6
+ * Test.Simple doesn't work on IE < 6.
7
+ * TODO:
8
+ * * Support the Test.Simple API used by MochiKit, to be able to test MochiKit
9
+ * itself against IE 5.5
10
+ *
11
+ **/
12
+
13
+ if (typeof(SimpleTest) == "undefined") {
14
+ var SimpleTest = {};
15
+ }
16
+
17
+ // Check to see if the TestRunner is present and has logging
18
+ if (typeof(parent) != "undefined" && parent.TestRunner) {
19
+ SimpleTest._logEnabled = parent.TestRunner.logEnabled;
20
+ }
21
+
22
+ SimpleTest._tests = [];
23
+ SimpleTest._stopOnLoad = true;
24
+
25
+ /**
26
+ * Something like assert.
27
+ */
28
+ SimpleTest.ok = function (condition, name, diag) {
29
+ var test = {'result': !!condition, 'name': name, 'diag': diag || ""};
30
+ if (SimpleTest._logEnabled) {
31
+ var msg = test.result ? "PASS" : "FAIL";
32
+ msg += " | " + test.name;
33
+ if (test.result) {
34
+ parent.TestRunner.logger.log(msg);
35
+ } else {
36
+ msg += " | " + test.diag;
37
+ parent.TestRunner.logger.error(msg);
38
+ }
39
+ }
40
+ SimpleTest._tests.push(test);
41
+ };
42
+
43
+ /**
44
+ * Roughly equivalent to ok(a==b, name)
45
+ */
46
+ SimpleTest.is = function (a, b, name) {
47
+ var repr = MochiKit.Base.repr;
48
+ SimpleTest.ok(a == b, name, "got " + repr(a) + ", expected " + repr(b));
49
+ };
50
+
51
+ /**
52
+ * Roughly equivalent to ok(compare(a,b)==0, name)
53
+ */
54
+ SimpleTest.eq = function (a, b, name) {
55
+ var repr = MochiKit.Base.repr;
56
+ try {
57
+ SimpleTest.ok(compare(a, b) == 0, name, "got " + repr(a) + ", expected " + repr(b));
58
+ } catch (e) {
59
+ SimpleTest.ok(false, name, "exception in compare: " + repr(e));
60
+ }
61
+ };
62
+
63
+
64
+ /**
65
+ * Makes a test report, returns it as a DIV element.
66
+ **/
67
+ SimpleTest.report = function () {
68
+ var DIV = MochiKit.DOM.DIV;
69
+ var passed = 0;
70
+ var failed = 0;
71
+ var results = MochiKit.Base.map(
72
+ function (test) {
73
+ var cls, msg;
74
+ if (test.result) {
75
+ passed++;
76
+ cls = "test_ok";
77
+ msg = "ok - " + test.name;
78
+ } else {
79
+ failed++;
80
+ cls = "test_not_ok";
81
+ msg = "not ok - " + test.name;
82
+ if (test.diag != null && test.diag != "") {
83
+ msg += ": " + test.diag;
84
+ }
85
+ }
86
+ return DIV({"class": cls}, msg);
87
+ },
88
+ SimpleTest._tests
89
+ );
90
+ var summary_class = ((failed == 0) ? 'all_pass' : 'some_fail');
91
+ return DIV({'class': 'tests_report'},
92
+ DIV({'class': 'tests_summary ' + summary_class},
93
+ DIV({'class': 'tests_passed'}, "Passed: " + passed),
94
+ DIV({'class': 'tests_failed'}, "Failed: " + failed)),
95
+ results
96
+ );
97
+ };
98
+
99
+ /**
100
+ * Toggle element visibility
101
+ **/
102
+ SimpleTest.toggle = function(el) {
103
+ if (MochiKit.Style.getStyle(el, 'display') == 'block') {
104
+ el.style.display = 'none';
105
+ } else {
106
+ el.style.display = 'block';
107
+ }
108
+ };
109
+
110
+ /**
111
+ * Toggle visibility for divs with a specific class.
112
+ **/
113
+ SimpleTest.toggleByClass = function (cls) {
114
+ var elems = getElementsByTagAndClassName('div', cls);
115
+ MochiKit.Base.map(SimpleTest.toggle, elems);
116
+ };
117
+
118
+ /**
119
+ * Shows the report in the browser
120
+ **/
121
+
122
+ SimpleTest.showReport = function() {
123
+ var togglePassed = A({'href': '#'}, "Toggle passed tests");
124
+ var toggleFailed = A({'href': '#'}, "Toggle failed tests");
125
+ togglePassed.onclick = partial(SimpleTest.toggleByClass, 'test_ok');
126
+ toggleFailed.onclick = partial(SimpleTest.toggleByClass, 'test_not_ok');
127
+ var body = document.getElementsByTagName("body")[0];
128
+ var firstChild = body.childNodes[0];
129
+ var addNode;
130
+ if (firstChild) {
131
+ addNode = function (el) {
132
+ body.insertBefore(el, firstChild);
133
+ };
134
+ } else {
135
+ addNode = function (el) {
136
+ body.appendChild(el)
137
+ };
138
+ }
139
+ addNode(togglePassed);
140
+ addNode(SPAN(null, " "));
141
+ addNode(toggleFailed);
142
+ addNode(SimpleTest.report());
143
+ };
144
+
145
+ /**
146
+ * Tells SimpleTest to don't finish the test when the document is loaded,
147
+ * useful for asynchronous tests.
148
+ *
149
+ * When SimpleTest.waitForExplicitFinish is called,
150
+ * explicit SimpleTest.finish() is required.
151
+ **/
152
+ SimpleTest.waitForExplicitFinish = function () {
153
+ SimpleTest._stopOnLoad = false;
154
+ };
155
+
156
+ /**
157
+ * Talks to the TestRunner if being ran on a iframe and the parent has a
158
+ * TestRunner object.
159
+ **/
160
+ SimpleTest.talkToRunner = function () {
161
+ if (typeof(parent) != "undefined" && parent.TestRunner) {
162
+ parent.TestRunner.testFinished(document);
163
+ }
164
+ };
165
+
166
+ /**
167
+ * Finishes the tests. This is automatically called, except when
168
+ * SimpleTest.waitForExplicitFinish() has been invoked.
169
+ **/
170
+ SimpleTest.finish = function () {
171
+ SimpleTest.showReport();
172
+ SimpleTest.talkToRunner();
173
+ };
174
+
175
+
176
+ addLoadEvent(function() {
177
+ if (SimpleTest._stopOnLoad) {
178
+ SimpleTest.finish();
179
+ }
180
+ });
181
+
182
+ // --------------- Test.Builder/Test.More isDeeply() -----------------
183
+
184
+
185
+ SimpleTest.DNE = {dne: 'Does not exist'};
186
+ SimpleTest.LF = "\r\n";
187
+ SimpleTest._isRef = function (object) {
188
+ var type = typeof(object);
189
+ return type == 'object' || type == 'function';
190
+ };
191
+
192
+
193
+ SimpleTest._deepCheck = function (e1, e2, stack, seen) {
194
+ var ok = false;
195
+ // Either they're both references or both not.
196
+ var sameRef = !(!SimpleTest._isRef(e1) ^ !SimpleTest._isRef(e2));
197
+ if (e1 == null && e2 == null) {
198
+ ok = true;
199
+ } else if (e1 != null ^ e2 != null) {
200
+ ok = false;
201
+ } else if (e1 == SimpleTest.DNE ^ e2 == SimpleTest.DNE) {
202
+ ok = false;
203
+ } else if (sameRef && e1 == e2) {
204
+ // Handles primitives and any variables that reference the same
205
+ // object, including functions.
206
+ ok = true;
207
+ } else if (SimpleTest.isa(e1, 'Array') && SimpleTest.isa(e2, 'Array')) {
208
+ ok = SimpleTest._eqArray(e1, e2, stack, seen);
209
+ } else if (typeof e1 == "object" && typeof e2 == "object") {
210
+ ok = SimpleTest._eqAssoc(e1, e2, stack, seen);
211
+ } else {
212
+ // If we get here, they're not the same (function references must
213
+ // always simply rererence the same function).
214
+ stack.push({ vals: [e1, e2] });
215
+ ok = false;
216
+ }
217
+ return ok;
218
+ };
219
+
220
+ SimpleTest._eqArray = function (a1, a2, stack, seen) {
221
+ // Return if they're the same object.
222
+ if (a1 == a2) return true;
223
+
224
+ // JavaScript objects have no unique identifiers, so we have to store
225
+ // references to them all in an array, and then compare the references
226
+ // directly. It's slow, but probably won't be much of an issue in
227
+ // practice. Start by making a local copy of the array to as to avoid
228
+ // confusing a reference seen more than once (such as [a, a]) for a
229
+ // circular reference.
230
+ for (var j = 0; j < seen.length; j++) {
231
+ if (seen[j][0] == a1) {
232
+ return seen[j][1] == a2;
233
+ }
234
+ }
235
+
236
+ // If we get here, we haven't seen a1 before, so store it with reference
237
+ // to a2.
238
+ seen.push([ a1, a2 ]);
239
+
240
+ var ok = true;
241
+ // Only examines enumerable attributes. Only works for numeric arrays!
242
+ // Associative arrays return 0. So call _eqAssoc() for them, instead.
243
+ var max = a1.length > a2.length ? a1.length : a2.length;
244
+ if (max == 0) return SimpleTest._eqAssoc(a1, a2, stack, seen);
245
+ for (var i = 0; i < max; i++) {
246
+ var e1 = i > a1.length - 1 ? SimpleTest.DNE : a1[i];
247
+ var e2 = i > a2.length - 1 ? SimpleTest.DNE : a2[i];
248
+ stack.push({ type: 'Array', idx: i, vals: [e1, e2] });
249
+ if (ok = SimpleTest._deepCheck(e1, e2, stack, seen)) {
250
+ stack.pop();
251
+ } else {
252
+ break;
253
+ }
254
+ }
255
+ return ok;
256
+ };
257
+
258
+ SimpleTest._eqAssoc = function (o1, o2, stack, seen) {
259
+ // Return if they're the same object.
260
+ if (o1 == o2) return true;
261
+
262
+ // JavaScript objects have no unique identifiers, so we have to store
263
+ // references to them all in an array, and then compare the references
264
+ // directly. It's slow, but probably won't be much of an issue in
265
+ // practice. Start by making a local copy of the array to as to avoid
266
+ // confusing a reference seen more than once (such as [a, a]) for a
267
+ // circular reference.
268
+ seen = seen.slice(0);
269
+ for (var j = 0; j < seen.length; j++) {
270
+ if (seen[j][0] == o1) {
271
+ return seen[j][1] == o2;
272
+ }
273
+ }
274
+
275
+ // If we get here, we haven't seen o1 before, so store it with reference
276
+ // to o2.
277
+ seen.push([ o1, o2 ]);
278
+
279
+ // They should be of the same class.
280
+
281
+ var ok = true;
282
+ // Only examines enumerable attributes.
283
+ var o1Size = 0; for (var i in o1) o1Size++;
284
+ var o2Size = 0; for (var i in o2) o2Size++;
285
+ var bigger = o1Size > o2Size ? o1 : o2;
286
+ for (var i in bigger) {
287
+ var e1 = o1[i] == undefined ? SimpleTest.DNE : o1[i];
288
+ var e2 = o2[i] == undefined ? SimpleTest.DNE : o2[i];
289
+ stack.push({ type: 'Object', idx: i, vals: [e1, e2] });
290
+ if (ok = SimpleTest._deepCheck(e1, e2, stack, seen)) {
291
+ stack.pop();
292
+ } else {
293
+ break;
294
+ }
295
+ }
296
+ return ok;
297
+ };
298
+
299
+ SimpleTest._formatStack = function (stack) {
300
+ var variable = '$Foo';
301
+ for (var i = 0; i < stack.length; i++) {
302
+ var entry = stack[i];
303
+ var type = entry['type'];
304
+ var idx = entry['idx'];
305
+ if (idx != null) {
306
+ if (/^\d+$/.test(idx)) {
307
+ // Numeric array index.
308
+ variable += '[' + idx + ']';
309
+ } else {
310
+ // Associative array index.
311
+ idx = idx.replace("'", "\\'");
312
+ variable += "['" + idx + "']";
313
+ }
314
+ }
315
+ }
316
+
317
+ var vals = stack[stack.length-1]['vals'].slice(0, 2);
318
+ var vars = [
319
+ variable.replace('$Foo', 'got'),
320
+ variable.replace('$Foo', 'expected')
321
+ ];
322
+
323
+ var out = "Structures begin differing at:" + SimpleTest.LF;
324
+ for (var i = 0; i < vals.length; i++) {
325
+ var val = vals[i];
326
+ if (val == null) {
327
+ val = 'undefined';
328
+ } else {
329
+ val == SimpleTest.DNE ? "Does not exist" : "'" + val + "'";
330
+ }
331
+ }
332
+
333
+ out += vars[0] + ' = ' + vals[0] + SimpleTest.LF;
334
+ out += vars[1] + ' = ' + vals[1] + SimpleTest.LF;
335
+
336
+ return ' ' + out;
337
+ };
338
+
339
+
340
+ SimpleTest.isDeeply = function (it, as, name) {
341
+ var ok;
342
+ // ^ is the XOR operator.
343
+ if (SimpleTest._isRef(it) ^ SimpleTest._isRef(as)) {
344
+ // One's a reference, one isn't.
345
+ ok = false;
346
+ } else if (!SimpleTest._isRef(it) && !SimpleTest._isRef(as)) {
347
+ // Neither is an object.
348
+ ok = SimpleTest.is(it, as, name);
349
+ } else {
350
+ // We have two objects. Do a deep comparison.
351
+ var stack = [], seen = [];
352
+ if ( SimpleTest._deepCheck(it, as, stack, seen)) {
353
+ ok = SimpleTest.ok(true, name);
354
+ } else {
355
+ ok = SimpleTest.ok(false, name, SimpleTest._formatStack(stack));
356
+ }
357
+ }
358
+ return ok;
359
+ };
360
+
361
+ SimpleTest.typeOf = function (object) {
362
+ var c = Object.prototype.toString.apply(object);
363
+ var name = c.substring(8, c.length - 1);
364
+ if (name != 'Object') return name;
365
+ // It may be a non-core class. Try to extract the class name from
366
+ // the constructor function. This may not work in all implementations.
367
+ if (/function ([^(\s]+)/.test(Function.toString.call(object.constructor))) {
368
+ return RegExp.$1;
369
+ }
370
+ // No idea. :-(
371
+ return name;
372
+ };
373
+
374
+ SimpleTest.isa = function (object, clas) {
375
+ return SimpleTest.typeOf(object) == clas;
376
+ };
377
+
378
+ // Global symbols:
379
+ var ok = SimpleTest.ok;
380
+ var is = SimpleTest.is;
381
+ var isDeeply = SimpleTest.isDeeply;