spade 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1990) hide show
  1. data/.gitignore +14 -0
  2. data/.gitmodules +15 -0
  3. data/.rspec +1 -0
  4. data/Buildfile +18 -0
  5. data/Gemfile +19 -0
  6. data/Gemfile.lock +34 -0
  7. data/README.md +148 -0
  8. data/Rakefile +9 -0
  9. data/bin/spade +7 -0
  10. data/examples/format-app/lib/hello.coffee +1 -0
  11. data/examples/format-app/lib/main.js +6 -0
  12. data/examples/format-app/package.json +10 -0
  13. data/examples/format-app/resources/README.txt +1 -0
  14. data/examples/format-app/resources/config.json +3 -0
  15. data/examples/path-test/lib/hello.js +1 -0
  16. data/examples/path-test/lib/main.js +1 -0
  17. data/examples/path-test/package.json +5 -0
  18. data/examples/sc-app/index.html +13 -0
  19. data/examples/sc-app/lib/main.js +24 -0
  20. data/examples/sc-app/package.json +8 -0
  21. data/examples/single-file.js +22 -0
  22. data/examples/todos/index.html +11 -0
  23. data/examples/todos/lib/main.js +10 -0
  24. data/examples/todos/lib/todos.js +93 -0
  25. data/examples/todos/package.json +10 -0
  26. data/examples/todos/resources/stylesheets/todos.css +162 -0
  27. data/examples/todos/resources/templates/todos.handlebars +31 -0
  28. data/examples/web-app/README.md +83 -0
  29. data/examples/web-app/index.html +12 -0
  30. data/examples/web-app/lib/main.js +3 -0
  31. data/examples/web-app/package.json +6 -0
  32. data/examples/web-app/tests.html +12 -0
  33. data/examples/web-app/tests/ct-example-test.js +39 -0
  34. data/examples/web-app/tests/qunit-test.js +23 -0
  35. data/lib/index.js +14 -0
  36. data/lib/node/loader.js +145 -0
  37. data/lib/node/sandbox.js +34 -0
  38. data/lib/spade.js +1099 -0
  39. data/lib/spade.rb +52 -0
  40. data/lib/spade/bundle.rb +156 -0
  41. data/lib/spade/cli.rb +14 -0
  42. data/lib/spade/cli/base.rb +325 -0
  43. data/lib/spade/cli/owner.rb +45 -0
  44. data/lib/spade/compiler.rb +34 -0
  45. data/lib/spade/console.rb +39 -0
  46. data/lib/spade/context.rb +116 -0
  47. data/lib/spade/credentials.rb +36 -0
  48. data/lib/spade/environment.rb +35 -0
  49. data/lib/spade/exports.rb +71 -0
  50. data/lib/spade/loader.rb +243 -0
  51. data/lib/spade/local.rb +53 -0
  52. data/lib/spade/package.rb +143 -0
  53. data/lib/spade/reactor.rb +159 -0
  54. data/lib/spade/remote.rb +75 -0
  55. data/lib/spade/repository.rb +18 -0
  56. data/lib/spade/server.rb +54 -0
  57. data/lib/spade/shell.rb +36 -0
  58. data/lib/spade/version.rb +3 -0
  59. data/package.json +27 -0
  60. data/packages/coffee-script/.gitignore +8 -0
  61. data/packages/coffee-script/.npmignore +11 -0
  62. data/packages/coffee-script/Cakefile +229 -0
  63. data/packages/coffee-script/LICENSE +22 -0
  64. data/packages/coffee-script/README +47 -0
  65. data/packages/coffee-script/Rakefile +78 -0
  66. data/packages/coffee-script/bin/cake +7 -0
  67. data/packages/coffee-script/bin/coffee +7 -0
  68. data/packages/coffee-script/documentation/coffee/aliases.coffee +11 -0
  69. data/packages/coffee-script/documentation/coffee/array_comprehensions.coffee +2 -0
  70. data/packages/coffee-script/documentation/coffee/block_comment.coffee +6 -0
  71. data/packages/coffee-script/documentation/coffee/cake_tasks.coffee +9 -0
  72. data/packages/coffee-script/documentation/coffee/classes.coffee +25 -0
  73. data/packages/coffee-script/documentation/coffee/comparisons.coffee +5 -0
  74. data/packages/coffee-script/documentation/coffee/conditionals.coffee +13 -0
  75. data/packages/coffee-script/documentation/coffee/default_args.coffee +8 -0
  76. data/packages/coffee-script/documentation/coffee/do.coffee +4 -0
  77. data/packages/coffee-script/documentation/coffee/embedded.coffee +5 -0
  78. data/packages/coffee-script/documentation/coffee/existence.coffee +10 -0
  79. data/packages/coffee-script/documentation/coffee/expressions.coffee +9 -0
  80. data/packages/coffee-script/documentation/coffee/expressions_assignment.coffee +3 -0
  81. data/packages/coffee-script/documentation/coffee/expressions_comprehension.coffee +3 -0
  82. data/packages/coffee-script/documentation/coffee/expressions_try.coffee +7 -0
  83. data/packages/coffee-script/documentation/coffee/fat_arrow.coffee +6 -0
  84. data/packages/coffee-script/documentation/coffee/functions.coffee +2 -0
  85. data/packages/coffee-script/documentation/coffee/heredocs.coffee +7 -0
  86. data/packages/coffee-script/documentation/coffee/heregexes.coffee +11 -0
  87. data/packages/coffee-script/documentation/coffee/interpolation.coffee +6 -0
  88. data/packages/coffee-script/documentation/coffee/multiple_return_values.coffee +7 -0
  89. data/packages/coffee-script/documentation/coffee/object_comprehensions.coffee +4 -0
  90. data/packages/coffee-script/documentation/coffee/object_extraction.coffee +13 -0
  91. data/packages/coffee-script/documentation/coffee/objects_and_arrays.coffee +19 -0
  92. data/packages/coffee-script/documentation/coffee/objects_reserved.coffee +5 -0
  93. data/packages/coffee-script/documentation/coffee/overview.coffee +28 -0
  94. data/packages/coffee-script/documentation/coffee/parallel_assignment.coffee +6 -0
  95. data/packages/coffee-script/documentation/coffee/patterns_and_splats.coffee +7 -0
  96. data/packages/coffee-script/documentation/coffee/prototypes.coffee +3 -0
  97. data/packages/coffee-script/documentation/coffee/range_comprehensions.coffee +2 -0
  98. data/packages/coffee-script/documentation/coffee/scope.coffee +5 -0
  99. data/packages/coffee-script/documentation/coffee/slices.coffee +7 -0
  100. data/packages/coffee-script/documentation/coffee/soaks.coffee +1 -0
  101. data/packages/coffee-script/documentation/coffee/splats.coffee +27 -0
  102. data/packages/coffee-script/documentation/coffee/splices.coffee +5 -0
  103. data/packages/coffee-script/documentation/coffee/strings.coffee +8 -0
  104. data/packages/coffee-script/documentation/coffee/switch.coffee +10 -0
  105. data/packages/coffee-script/documentation/coffee/try.coffee +8 -0
  106. data/packages/coffee-script/documentation/coffee/while.coffee +10 -0
  107. data/packages/coffee-script/documentation/css/docs.css +374 -0
  108. data/packages/coffee-script/documentation/css/idle.css +64 -0
  109. data/packages/coffee-script/documentation/docs/browser.html +25 -0
  110. data/packages/coffee-script/documentation/docs/cake.html +43 -0
  111. data/packages/coffee-script/documentation/docs/coffee-script.html +51 -0
  112. data/packages/coffee-script/documentation/docs/command.html +161 -0
  113. data/packages/coffee-script/documentation/docs/docco.css +186 -0
  114. data/packages/coffee-script/documentation/docs/grammar.html +399 -0
  115. data/packages/coffee-script/documentation/docs/helpers.html +31 -0
  116. data/packages/coffee-script/documentation/docs/index.html +3 -0
  117. data/packages/coffee-script/documentation/docs/lexer.html +490 -0
  118. data/packages/coffee-script/documentation/docs/nodes.html +1338 -0
  119. data/packages/coffee-script/documentation/docs/optparse.html +78 -0
  120. data/packages/coffee-script/documentation/docs/repl.html +24 -0
  121. data/packages/coffee-script/documentation/docs/rewriter.html +251 -0
  122. data/packages/coffee-script/documentation/docs/scope.html +54 -0
  123. data/packages/coffee-script/documentation/docs/underscore.html +295 -0
  124. data/packages/coffee-script/documentation/images/background.png +0 -0
  125. data/packages/coffee-script/documentation/images/banding.png +0 -0
  126. data/packages/coffee-script/documentation/images/button_bg.png +0 -0
  127. data/packages/coffee-script/documentation/images/button_bg_dark.gif +0 -0
  128. data/packages/coffee-script/documentation/images/button_bg_green.gif +0 -0
  129. data/packages/coffee-script/documentation/images/favicon.ico +0 -0
  130. data/packages/coffee-script/documentation/images/logo.png +0 -0
  131. data/packages/coffee-script/documentation/images/screenshadow.png +0 -0
  132. data/packages/coffee-script/documentation/index.html.erb +1607 -0
  133. data/packages/coffee-script/documentation/js/aliases.js +17 -0
  134. data/packages/coffee-script/documentation/js/array_comprehensions.js +6 -0
  135. data/packages/coffee-script/documentation/js/block_comment.js +4 -0
  136. data/packages/coffee-script/documentation/js/cake_tasks.js +10 -0
  137. data/packages/coffee-script/documentation/js/classes.js +44 -0
  138. data/packages/coffee-script/documentation/js/comparisons.js +3 -0
  139. data/packages/coffee-script/documentation/js/conditionals.js +12 -0
  140. data/packages/coffee-script/documentation/js/default_args.js +7 -0
  141. data/packages/coffee-script/documentation/js/do.js +10 -0
  142. data/packages/coffee-script/documentation/js/embedded.js +4 -0
  143. data/packages/coffee-script/documentation/js/existence.js +6 -0
  144. data/packages/coffee-script/documentation/js/expressions.js +15 -0
  145. data/packages/coffee-script/documentation/js/expressions_assignment.js +2 -0
  146. data/packages/coffee-script/documentation/js/expressions_comprehension.js +9 -0
  147. data/packages/coffee-script/documentation/js/expressions_try.js +7 -0
  148. data/packages/coffee-script/documentation/js/fat_arrow.js +9 -0
  149. data/packages/coffee-script/documentation/js/functions.js +7 -0
  150. data/packages/coffee-script/documentation/js/heredocs.js +2 -0
  151. data/packages/coffee-script/documentation/js/heregexes.js +2 -0
  152. data/packages/coffee-script/documentation/js/interpolation.js +4 -0
  153. data/packages/coffee-script/documentation/js/multiple_return_values.js +5 -0
  154. data/packages/coffee-script/documentation/js/object_comprehensions.js +15 -0
  155. data/packages/coffee-script/documentation/js/object_extraction.js +10 -0
  156. data/packages/coffee-script/documentation/js/objects_and_arrays.js +17 -0
  157. data/packages/coffee-script/documentation/js/objects_reserved.js +4 -0
  158. data/packages/coffee-script/documentation/js/overview.js +35 -0
  159. data/packages/coffee-script/documentation/js/parallel_assignment.js +4 -0
  160. data/packages/coffee-script/documentation/js/patterns_and_splats.js +4 -0
  161. data/packages/coffee-script/documentation/js/prototypes.js +3 -0
  162. data/packages/coffee-script/documentation/js/range_comprehensions.js +9 -0
  163. data/packages/coffee-script/documentation/js/scope.js +8 -0
  164. data/packages/coffee-script/documentation/js/slices.js +4 -0
  165. data/packages/coffee-script/documentation/js/soaks.js +2 -0
  166. data/packages/coffee-script/documentation/js/splats.js +15 -0
  167. data/packages/coffee-script/documentation/js/splices.js +3 -0
  168. data/packages/coffee-script/documentation/js/strings.js +2 -0
  169. data/packages/coffee-script/documentation/js/switch.js +23 -0
  170. data/packages/coffee-script/documentation/js/try.js +8 -0
  171. data/packages/coffee-script/documentation/js/while.js +18 -0
  172. data/packages/coffee-script/documentation/vendor/jquery-1.4.2.js +6240 -0
  173. data/packages/coffee-script/examples/beautiful_code/binary_search.coffee +16 -0
  174. data/packages/coffee-script/examples/beautiful_code/quicksort_runtime.coffee +13 -0
  175. data/packages/coffee-script/examples/beautiful_code/regular_expression_matcher.coffee +34 -0
  176. data/packages/coffee-script/examples/blocks.coffee +54 -0
  177. data/packages/coffee-script/examples/code.coffee +167 -0
  178. data/packages/coffee-script/examples/computer_science/README +4 -0
  179. data/packages/coffee-script/examples/computer_science/binary_search.coffee +25 -0
  180. data/packages/coffee-script/examples/computer_science/bubble_sort.coffee +11 -0
  181. data/packages/coffee-script/examples/computer_science/linked_list.coffee +108 -0
  182. data/packages/coffee-script/examples/computer_science/luhn_algorithm.coffee +36 -0
  183. data/packages/coffee-script/examples/computer_science/merge_sort.coffee +19 -0
  184. data/packages/coffee-script/examples/computer_science/selection_sort.coffee +23 -0
  185. data/packages/coffee-script/examples/poignant.coffee +181 -0
  186. data/packages/coffee-script/examples/potion.coffee +206 -0
  187. data/packages/coffee-script/examples/underscore.coffee +682 -0
  188. data/packages/coffee-script/examples/web_server.coffee +12 -0
  189. data/packages/coffee-script/extras/EXTRAS +7 -0
  190. data/packages/coffee-script/extras/coffee-script.js +8 -0
  191. data/packages/coffee-script/extras/jsl.conf +44 -0
  192. data/packages/coffee-script/index.html +2515 -0
  193. data/packages/coffee-script/lib/browser.js +52 -0
  194. data/packages/coffee-script/lib/cake.js +76 -0
  195. data/packages/coffee-script/lib/coffee-script.js +82 -0
  196. data/packages/coffee-script/lib/command.js +263 -0
  197. data/packages/coffee-script/lib/grammar.js +581 -0
  198. data/packages/coffee-script/lib/helpers.js +66 -0
  199. data/packages/coffee-script/lib/index.js +8 -0
  200. data/packages/coffee-script/lib/lexer.js +633 -0
  201. data/packages/coffee-script/lib/nodes.js +2165 -0
  202. data/packages/coffee-script/lib/optparse.js +111 -0
  203. data/packages/coffee-script/lib/parser.js +649 -0
  204. data/packages/coffee-script/lib/repl.js +42 -0
  205. data/packages/coffee-script/lib/rewriter.js +353 -0
  206. data/packages/coffee-script/lib/scope.js +120 -0
  207. data/packages/coffee-script/lib/spade-format.js +45 -0
  208. data/packages/coffee-script/package.json +26 -0
  209. data/packages/coffee-script/src/browser.coffee +43 -0
  210. data/packages/coffee-script/src/cake.coffee +69 -0
  211. data/packages/coffee-script/src/coffee-script.coffee +92 -0
  212. data/packages/coffee-script/src/command.coffee +214 -0
  213. data/packages/coffee-script/src/grammar.coffee +590 -0
  214. data/packages/coffee-script/src/helpers.coffee +56 -0
  215. data/packages/coffee-script/src/index.coffee +2 -0
  216. data/packages/coffee-script/src/lexer.coffee +653 -0
  217. data/packages/coffee-script/src/nodes.coffee +1754 -0
  218. data/packages/coffee-script/src/optparse.coffee +99 -0
  219. data/packages/coffee-script/src/repl.coffee +42 -0
  220. data/packages/coffee-script/src/rewriter.coffee +326 -0
  221. data/packages/coffee-script/src/scope.coffee +94 -0
  222. data/packages/coffee-script/test/arguments.coffee +127 -0
  223. data/packages/coffee-script/test/assignment.coffee +98 -0
  224. data/packages/coffee-script/test/break.coffee +18 -0
  225. data/packages/coffee-script/test/comments.coffee +201 -0
  226. data/packages/coffee-script/test/conditionals.coffee +181 -0
  227. data/packages/coffee-script/test/exception_handling.coffee +90 -0
  228. data/packages/coffee-script/test/helpers.coffee +96 -0
  229. data/packages/coffee-script/test/importing.coffee +18 -0
  230. data/packages/coffee-script/test/operators.coffee +225 -0
  231. data/packages/coffee-script/test/ranges_slices_and_splices.coffee +186 -0
  232. data/packages/coffee-script/test/regular_expressions.coffee +56 -0
  233. data/packages/coffee-script/test/test.html +123 -0
  234. data/packages/coffee-script/test/test_chaining.coffee +77 -0
  235. data/packages/coffee-script/test/test_classes.coffee +372 -0
  236. data/packages/coffee-script/test/test_compilation.coffee +26 -0
  237. data/packages/coffee-script/test/test_comprehensions.coffee +318 -0
  238. data/packages/coffee-script/test/test_existence.coffee +165 -0
  239. data/packages/coffee-script/test/test_functions.coffee +379 -0
  240. data/packages/coffee-script/test/test_heredocs.coffee +111 -0
  241. data/packages/coffee-script/test/test_literals.coffee +270 -0
  242. data/packages/coffee-script/test/test_option_parser.coffee +27 -0
  243. data/packages/coffee-script/test/test_pattern_matching.coffee +162 -0
  244. data/packages/coffee-script/test/test_returns.coffee +63 -0
  245. data/packages/coffee-script/test/test_splats.coffee +102 -0
  246. data/packages/coffee-script/test/test_strings.coffee +118 -0
  247. data/packages/coffee-script/test/test_switch.coffee +103 -0
  248. data/packages/coffee-script/test/test_while.coffee +71 -0
  249. data/packages/core-test/.gitignore +2 -0
  250. data/packages/core-test/Buildfile +15 -0
  251. data/packages/core-test/CHANGELOG.md +24 -0
  252. data/packages/core-test/__preamble__.js +34 -0
  253. data/packages/core-test/bin/cot +3 -0
  254. data/packages/core-test/lib/assert.js +306 -0
  255. data/packages/core-test/lib/cli.js +258 -0
  256. data/packages/core-test/lib/core.js +311 -0
  257. data/packages/core-test/lib/loggers/browser.js +390 -0
  258. data/packages/core-test/lib/loggers/console.js +235 -0
  259. data/packages/core-test/lib/loggers/default.js +272 -0
  260. data/packages/core-test/lib/loggers/dummy.js +168 -0
  261. data/packages/core-test/lib/main.js +22 -0
  262. data/packages/core-test/lib/private/jquery.js +6079 -0
  263. data/packages/core-test/lib/qunit.js +159 -0
  264. data/packages/core-test/lib/runner.js +65 -0
  265. data/packages/core-test/lib/spec.js +302 -0
  266. data/packages/core-test/lib/sync.js +64 -0
  267. data/packages/core-test/lib/system/dump.js +208 -0
  268. data/packages/core-test/lib/system/equiv.js +199 -0
  269. data/packages/core-test/lib/system/ext.js +62 -0
  270. data/packages/core-test/lib/system/module.js +162 -0
  271. data/packages/core-test/lib/system/plan.js +223 -0
  272. data/packages/core-test/lib/system/stub.js +98 -0
  273. data/packages/core-test/lib/system/test.js +373 -0
  274. data/packages/core-test/lib/test.js +69 -0
  275. data/packages/core-test/lib/utils.js +256 -0
  276. data/packages/core-test/package.json +10 -0
  277. data/packages/core-test/resources/additions.css +8 -0
  278. data/packages/core-test/resources/runner.css +177 -0
  279. data/packages/core-test/tests/apis/commonjs-test.js +102 -0
  280. data/packages/core-test/tests/apis/core-test.js +154 -0
  281. data/packages/core-test/tests/apis/qunit-test.js +244 -0
  282. data/packages/core-test/tests/apis/spec-test.js +344 -0
  283. data/packages/core-test/tests/system/equiv/qunit-test.js +1400 -0
  284. data/packages/core-test/tests/system/test/assert-test.js +86 -0
  285. data/packages/core-test/tests/system/test/error-test.js +62 -0
  286. data/packages/core-test/tests/system/test/schedule-test.js +210 -0
  287. data/packages/core-test/tests/utils/fmt-test.js +24 -0
  288. data/packages/handlebars/Gemfile +4 -0
  289. data/packages/handlebars/README.markdown +205 -0
  290. data/packages/handlebars/Rakefile +65 -0
  291. data/packages/handlebars/lib/handlebars.js +19 -0
  292. data/packages/handlebars/lib/handlebars/ast.js +88 -0
  293. data/packages/handlebars/lib/handlebars/compiler.js +116 -0
  294. data/packages/handlebars/lib/handlebars/debug.js +25 -0
  295. data/packages/handlebars/lib/handlebars/printer.js +114 -0
  296. data/packages/handlebars/lib/handlebars/runtime.js +280 -0
  297. data/packages/handlebars/lib/handlebars/utils.js +61 -0
  298. data/packages/handlebars/lib/handlebars/visitor.js +14 -0
  299. data/packages/handlebars/lib/handlebars/vm.js +634 -0
  300. data/packages/handlebars/spec/acceptance_spec.rb +100 -0
  301. data/packages/handlebars/spec/parser_spec.rb +181 -0
  302. data/packages/handlebars/spec/qunit_spec.js +497 -0
  303. data/packages/handlebars/spec/spec_helper.rb +107 -0
  304. data/packages/handlebars/spec/tokenizer_spec.rb +145 -0
  305. data/packages/handlebars/src/handlebars.l +27 -0
  306. data/packages/handlebars/src/handlebars.yy +79 -0
  307. data/packages/handlebars/test.js +56 -0
  308. data/packages/ivory/LICENSE.txt +1 -0
  309. data/packages/ivory/README.md +19 -0
  310. data/packages/ivory/lib/buffer.js +111 -0
  311. data/packages/ivory/lib/events.js +137 -0
  312. data/packages/ivory/lib/fs.js +266 -0
  313. data/packages/ivory/lib/main.js +13 -0
  314. data/packages/ivory/lib/path.js +158 -0
  315. data/packages/ivory/lib/ruby/buffer.rb +145 -0
  316. data/packages/ivory/lib/ruby/constants.rb +585 -0
  317. data/packages/ivory/lib/ruby/events.rb +32 -0
  318. data/packages/ivory/lib/ruby/fs.rb +245 -0
  319. data/packages/ivory/lib/ruby/process.rb +28 -0
  320. data/packages/ivory/lib/stream.js +115 -0
  321. data/packages/ivory/lib/util.js +414 -0
  322. data/packages/ivory/package.json +11 -0
  323. data/packages/jquery-core/lib/main.js +897 -0
  324. data/packages/jquery-core/package.json +9 -0
  325. data/packages/jquery/main.js +7179 -0
  326. data/packages/jquery/package.json +10 -0
  327. data/packages/json/lib/main.js +14 -0
  328. data/packages/json/package.json +8 -0
  329. data/packages/lproj/README.md +77 -0
  330. data/packages/lproj/examples/demo-app/en.lproj/localized.strings +2 -0
  331. data/packages/lproj/examples/demo-app/fr.lproj/localized.strings +3 -0
  332. data/packages/lproj/examples/demo-app/index.html +8 -0
  333. data/packages/lproj/examples/demo-app/lib/main.js +7 -0
  334. data/packages/lproj/examples/demo-app/package.json +9 -0
  335. data/packages/lproj/lib/main.js +78 -0
  336. data/packages/lproj/lib/strings-format.js +6 -0
  337. data/packages/lproj/package.json +9 -0
  338. data/packages/optparse/README.md +161 -0
  339. data/packages/optparse/TODO +1 -0
  340. data/packages/optparse/examples/browser-test.html +75 -0
  341. data/packages/optparse/examples/nodejs-test.js +90 -0
  342. data/packages/optparse/lib/optparse.js +309 -0
  343. data/packages/optparse/package.json +13 -0
  344. data/packages/optparse/seed.yml +5 -0
  345. data/packages/sproutcore-bootstrap/lib/main.js +11 -0
  346. data/packages/sproutcore-bootstrap/package.json +15 -0
  347. data/packages/sproutcore-corefoundation/lib/main.js +66 -0
  348. data/packages/sproutcore-corefoundation/lib/tests.js +74 -0
  349. data/packages/sproutcore-corefoundation/package.json +27 -0
  350. data/packages/sproutcore-corefoundation/tests.html +12 -0
  351. data/packages/sproutcore-datastore/lib/main.js +23 -0
  352. data/packages/sproutcore-datastore/package.json +16 -0
  353. data/packages/sproutcore-datetime/lib/main.js +6 -0
  354. data/packages/sproutcore-datetime/package.json +16 -0
  355. data/packages/sproutcore-handlebars/lib/handlebars.js +5 -0
  356. data/packages/sproutcore-handlebars/lib/main.js +15 -0
  357. data/packages/sproutcore-handlebars/package.json +17 -0
  358. data/packages/sproutcore-jquery/lib/main.js +10 -0
  359. data/packages/sproutcore-jquery/package.json +12 -0
  360. data/packages/sproutcore-preprocessor/bin/chance +64 -0
  361. data/packages/sproutcore-preprocessor/lib/css.js +21 -0
  362. data/packages/sproutcore-preprocessor/lib/main.js +1 -0
  363. data/packages/sproutcore-preprocessor/lib/preprocessor.js +12 -0
  364. data/packages/sproutcore-preprocessor/lib/sc_static.js +9 -0
  365. data/packages/sproutcore-preprocessor/package.json +18 -0
  366. data/packages/sproutcore-runtime/lib/main.js +37 -0
  367. data/packages/sproutcore-runtime/package.json +21 -0
  368. data/packages/text/lib/main.js +8 -0
  369. data/packages/text/package.json +9 -0
  370. data/packages/web-file/README.md +7 -0
  371. data/packages/web-file/lib/errors.js +32 -0
  372. data/packages/web-file/lib/file-reader.js +10 -0
  373. data/packages/web-file/lib/file-system.js +234 -0
  374. data/packages/web-file/lib/file-writer.js +10 -0
  375. data/packages/web-file/lib/file.js +9 -0
  376. data/packages/web-file/lib/main.js +34 -0
  377. data/packages/web-file/lib/platform.js +25 -0
  378. data/packages/web-file/lib/ruby/file.rb +252 -0
  379. data/packages/web-file/lib/ruby/file_reader.rb +69 -0
  380. data/packages/web-file/lib/ruby/file_system.rb +134 -0
  381. data/packages/web-file/lib/ruby/file_writer.rb +78 -0
  382. data/packages/web-file/package.json +12 -0
  383. data/packages/web-typed-array/README.md +7 -0
  384. data/packages/web-typed-array/lib/array-buffer-view.js +9 -0
  385. data/packages/web-typed-array/lib/array-buffer.js +7 -0
  386. data/packages/web-typed-array/lib/main.js +33 -0
  387. data/packages/web-typed-array/lib/platform.js +20 -0
  388. data/packages/web-typed-array/lib/ruby/array_buffer.rb +31 -0
  389. data/packages/web-typed-array/lib/ruby/array_buffer_view.rb +130 -0
  390. data/packages/web-typed-array/lib/ruby/typed_array.rb +133 -0
  391. data/packages/web-typed-array/lib/typed-array.js +26 -0
  392. data/packages/web-typed-array/package.json +9 -0
  393. data/spade.gemspec +30 -0
  394. data/spec/cli/build_spec.rb +59 -0
  395. data/spec/cli/install_spec.rb +106 -0
  396. data/spec/cli/installed_spec.rb +55 -0
  397. data/spec/cli/list_spec.rb +75 -0
  398. data/spec/cli/login_spec.rb +76 -0
  399. data/spec/cli/owner_spec.rb +115 -0
  400. data/spec/cli/push_spec.rb +74 -0
  401. data/spec/cli/uninstall_spec.rb +58 -0
  402. data/spec/cli/unpack_spec.rb +73 -0
  403. data/spec/credentials_spec.rb +24 -0
  404. data/spec/fixtures/coffee/bin/cake +0 -0
  405. data/spec/fixtures/coffee/bin/coffee +0 -0
  406. data/spec/fixtures/coffee/lib/coffee.js +0 -0
  407. data/spec/fixtures/coffee/lib/coffee.png +0 -0
  408. data/spec/fixtures/coffee/lib/coffee/base.js +0 -0
  409. data/spec/fixtures/coffee/lib/coffee/mocha/chai.js +0 -0
  410. data/spec/fixtures/coffee/qunit/coffee/test.js +0 -0
  411. data/spec/fixtures/coffee/qunit/test.js +0 -0
  412. data/spec/fixtures/coffee/qunit/test.log +0 -0
  413. data/spec/fixtures/package.json +25 -0
  414. data/spec/gauntlet_spec.rb +30 -0
  415. data/spec/javascript/async-test.js +123 -0
  416. data/spec/javascript/compiler/javascript.js +13 -0
  417. data/spec/javascript/compiler/ruby.js +14 -0
  418. data/spec/javascript/loader-test.js +64 -0
  419. data/spec/javascript/normalize-test.js +59 -0
  420. data/spec/javascript/packages-test.js +44 -0
  421. data/spec/javascript/relative-require-test.js +72 -0
  422. data/spec/javascript/require-test.js +56 -0
  423. data/spec/javascript/sandbox/compile.js +37 -0
  424. data/spec/javascript/sandbox/creation.js +44 -0
  425. data/spec/javascript/sandbox/format.js +79 -0
  426. data/spec/javascript/sandbox/misc.js +57 -0
  427. data/spec/javascript/sandbox/preprocessor.js +81 -0
  428. data/spec/javascript/sandbox/require.js +48 -0
  429. data/spec/javascript/sandbox/run-command.js +21 -0
  430. data/spec/javascript/spade/externs.js +14 -0
  431. data/spec/javascript/spade/load-factory.js +15 -0
  432. data/spec/javascript/spade/misc.js +23 -0
  433. data/spec/javascript/spade/ready.js +12 -0
  434. data/spec/javascript/spade/register.js +13 -0
  435. data/spec/javascript_spec.rb +7 -0
  436. data/spec/package_spec.rb +257 -0
  437. data/spec/spec_helper.rb +30 -0
  438. data/spec/support/cli.rb +94 -0
  439. data/spec/support/core_test.rb +52 -0
  440. data/spec/support/fake.rb +42 -0
  441. data/spec/support/fake_gem_server.rb +50 -0
  442. data/spec/support/fake_gemcutter.rb +29 -0
  443. data/spec/support/matchers.rb +31 -0
  444. data/spec/support/path.rb +54 -0
  445. data/sproutcore/.gitignore +13 -0
  446. data/sproutcore/Buildfile +112 -0
  447. data/sproutcore/CHANGELOG.md +232 -0
  448. data/sproutcore/README.md +68 -0
  449. data/sproutcore/apps/docs/core.js +27 -0
  450. data/sproutcore/apps/docs/design/Doc Viewer.graffle/QuickLook/Preview.pdf +0 -0
  451. data/sproutcore/apps/docs/design/Doc Viewer.graffle/QuickLook/Thumbnail.tiff +0 -0
  452. data/sproutcore/apps/docs/design/Doc Viewer.graffle/data.plist +14378 -0
  453. data/sproutcore/apps/docs/design/Doc Viewer.graffle/image10.png +0 -0
  454. data/sproutcore/apps/docs/design/Doc Viewer.graffle/image11.png +0 -0
  455. data/sproutcore/apps/docs/design/Doc Viewer.graffle/image13.png +0 -0
  456. data/sproutcore/apps/docs/design/Doc Viewer.graffle/image14.png +0 -0
  457. data/sproutcore/apps/docs/design/Doc Viewer.graffle/image8.png +0 -0
  458. data/sproutcore/apps/docs/design/Doc Viewer.graffle/image9.tiff +0 -0
  459. data/sproutcore/apps/docs/english.lproj/loading.rhtml +9 -0
  460. data/sproutcore/apps/docs/english.lproj/main_page.js +22 -0
  461. data/sproutcore/apps/docs/english.lproj/strings.js +15 -0
  462. data/sproutcore/apps/docs/main.js +30 -0
  463. data/sproutcore/apps/greenhouse/README +18 -0
  464. data/sproutcore/apps/greenhouse/TODO +56 -0
  465. data/sproutcore/apps/greenhouse/beautify.js +1058 -0
  466. data/sproutcore/apps/greenhouse/controllers/design.js +20 -0
  467. data/sproutcore/apps/greenhouse/controllers/file.js +35 -0
  468. data/sproutcore/apps/greenhouse/controllers/files.js +40 -0
  469. data/sproutcore/apps/greenhouse/controllers/layout.js +53 -0
  470. data/sproutcore/apps/greenhouse/controllers/library.js +194 -0
  471. data/sproutcore/apps/greenhouse/controllers/page.js +18 -0
  472. data/sproutcore/apps/greenhouse/controllers/property.js +19 -0
  473. data/sproutcore/apps/greenhouse/controllers/property_editor.js +17 -0
  474. data/sproutcore/apps/greenhouse/controllers/target.js +20 -0
  475. data/sproutcore/apps/greenhouse/controllers/targets.js +43 -0
  476. data/sproutcore/apps/greenhouse/controllers/view_configs.js +100 -0
  477. data/sproutcore/apps/greenhouse/core.js +65 -0
  478. data/sproutcore/apps/greenhouse/core_file.js +124 -0
  479. data/sproutcore/apps/greenhouse/data_source.js +250 -0
  480. data/sproutcore/apps/greenhouse/english.lproj/app_page.js +399 -0
  481. data/sproutcore/apps/greenhouse/english.lproj/css/app-selector.css +107 -0
  482. data/sproutcore/apps/greenhouse/english.lproj/css/button.css +314 -0
  483. data/sproutcore/apps/greenhouse/english.lproj/css/dock.css +90 -0
  484. data/sproutcore/apps/greenhouse/english.lproj/css/general.css +51 -0
  485. data/sproutcore/apps/greenhouse/english.lproj/css/main-page.css +93 -0
  486. data/sproutcore/apps/greenhouse/english.lproj/css/menu.css +49 -0
  487. data/sproutcore/apps/greenhouse/english.lproj/css/modal.css +41 -0
  488. data/sproutcore/apps/greenhouse/english.lproj/css/picker.css +195 -0
  489. data/sproutcore/apps/greenhouse/english.lproj/css/search.css +60 -0
  490. data/sproutcore/apps/greenhouse/english.lproj/css/text-field.css +67 -0
  491. data/sproutcore/apps/greenhouse/english.lproj/dialogs.js +303 -0
  492. data/sproutcore/apps/greenhouse/english.lproj/fonts/museosans_500.eot +0 -0
  493. data/sproutcore/apps/greenhouse/english.lproj/fonts/museosans_500.otf +0 -0
  494. data/sproutcore/apps/greenhouse/english.lproj/fonts/museosans_500.woff +0 -0
  495. data/sproutcore/apps/greenhouse/english.lproj/fonts/museosans_500_italic.eot +0 -0
  496. data/sproutcore/apps/greenhouse/english.lproj/fonts/museosans_500_italic.otf +0 -0
  497. data/sproutcore/apps/greenhouse/english.lproj/fonts/museosans_500_italic.woff +0 -0
  498. data/sproutcore/apps/greenhouse/english.lproj/images/app-selector/choose-app.png +0 -0
  499. data/sproutcore/apps/greenhouse/english.lproj/images/app-selector/list-item-sel.png +0 -0
  500. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/capsule-xl/active-l.png +0 -0
  501. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/capsule-xl/active-m.png +0 -0
  502. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/capsule-xl/active-r.png +0 -0
  503. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/capsule-xl/regular-l.png +0 -0
  504. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/capsule-xl/regular-m.png +0 -0
  505. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/capsule-xl/regular-r.png +0 -0
  506. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/capsule/active-l.png +0 -0
  507. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/capsule/active-r.png +0 -0
  508. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/capsule/disabled-l.png +0 -0
  509. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/capsule/disabled-r.png +0 -0
  510. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/capsule/regular-l.png +0 -0
  511. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/capsule/regular-r.png +0 -0
  512. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/capsule/sel-active-l.png +0 -0
  513. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/capsule/sel-active-r.png +0 -0
  514. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/capsule/sel-disabled-l.png +0 -0
  515. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/capsule/sel-disabled-r.png +0 -0
  516. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/capsule/sel-l.png +0 -0
  517. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/capsule/sel-r.png +0 -0
  518. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/active-l.png +0 -0
  519. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/active-m.png +0 -0
  520. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/active-r.png +0 -0
  521. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/cap-active-l.png +0 -0
  522. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/cap-active-r.png +0 -0
  523. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/cap-l.png +0 -0
  524. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/cap-r.png +0 -0
  525. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/cap-sel-active-l.png +0 -0
  526. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/cap-sel-active-r.png +0 -0
  527. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/cap-sel-l.png +0 -0
  528. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/cap-sel-r.png +0 -0
  529. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/disabled-l.png +0 -0
  530. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/disabled-m.png +0 -0
  531. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/disabled-r.png +0 -0
  532. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/regular-l.png +0 -0
  533. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/regular-m.png +0 -0
  534. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/regular-r.png +0 -0
  535. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/sel-active-l.png +0 -0
  536. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/sel-active-m.png +0 -0
  537. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/sel-active-r.png +0 -0
  538. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/sel-disabled-l.png +0 -0
  539. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/sel-disabled-m.png +0 -0
  540. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/sel-disabled-r.png +0 -0
  541. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/sel-l.png +0 -0
  542. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/sel-m.png +0 -0
  543. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/dark/sel-r.png +0 -0
  544. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/shared/active-m.png +0 -0
  545. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/shared/disabled-m.png +0 -0
  546. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/shared/regular-m.png +0 -0
  547. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/shared/sel-active-m.png +0 -0
  548. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/shared/sel-disabled-m.png +0 -0
  549. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/shared/sel-m.png +0 -0
  550. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/square/active-l.png +0 -0
  551. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/square/active-r.png +0 -0
  552. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/square/disabled-l.png +0 -0
  553. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/square/disabled-r.png +0 -0
  554. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/square/regular-l.png +0 -0
  555. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/square/regular-r.png +0 -0
  556. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/square/sel-active-l.png +0 -0
  557. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/square/sel-active-r.png +0 -0
  558. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/square/sel-disabled-l.png +0 -0
  559. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/square/sel-disabled-r.png +0 -0
  560. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/square/sel-l.png +0 -0
  561. data/sproutcore/apps/greenhouse/english.lproj/images/buttons/square/sel-r.png +0 -0
  562. data/sproutcore/apps/greenhouse/english.lproj/images/icons/actions-active.png +0 -0
  563. data/sproutcore/apps/greenhouse/english.lproj/images/icons/actions.png +0 -0
  564. data/sproutcore/apps/greenhouse/english.lproj/images/icons/inspector-active.png +0 -0
  565. data/sproutcore/apps/greenhouse/english.lproj/images/icons/inspector.png +0 -0
  566. data/sproutcore/apps/greenhouse/english.lproj/images/icons/library-active.png +0 -0
  567. data/sproutcore/apps/greenhouse/english.lproj/images/icons/library.png +0 -0
  568. data/sproutcore/apps/greenhouse/english.lproj/images/icons/projects-active.png +0 -0
  569. data/sproutcore/apps/greenhouse/english.lproj/images/icons/projects.png +0 -0
  570. data/sproutcore/apps/greenhouse/english.lproj/images/icons/run-active.png +0 -0
  571. data/sproutcore/apps/greenhouse/english.lproj/images/icons/run.png +0 -0
  572. data/sproutcore/apps/greenhouse/english.lproj/images/icons/save-active.png +0 -0
  573. data/sproutcore/apps/greenhouse/english.lproj/images/icons/save.png +0 -0
  574. data/sproutcore/apps/greenhouse/english.lproj/images/logos/greenhouse-l.png +0 -0
  575. data/sproutcore/apps/greenhouse/english.lproj/images/logos/greenhouse-s.png +0 -0
  576. data/sproutcore/apps/greenhouse/english.lproj/images/logos/sproutcore.png +0 -0
  577. data/sproutcore/apps/greenhouse/english.lproj/images/main-bg.png +0 -0
  578. data/sproutcore/apps/greenhouse/english.lproj/images/picker/bottom-left.png +0 -0
  579. data/sproutcore/apps/greenhouse/english.lproj/images/picker/bottom-right.png +0 -0
  580. data/sproutcore/apps/greenhouse/english.lproj/images/picker/bottom.png +0 -0
  581. data/sproutcore/apps/greenhouse/english.lproj/images/picker/close-active.png +0 -0
  582. data/sproutcore/apps/greenhouse/english.lproj/images/picker/close.png +0 -0
  583. data/sproutcore/apps/greenhouse/english.lproj/images/picker/left.png +0 -0
  584. data/sproutcore/apps/greenhouse/english.lproj/images/picker/pointer-bottom.png +0 -0
  585. data/sproutcore/apps/greenhouse/english.lproj/images/picker/pointer-left.png +0 -0
  586. data/sproutcore/apps/greenhouse/english.lproj/images/picker/pointer-right.png +0 -0
  587. data/sproutcore/apps/greenhouse/english.lproj/images/picker/pointer-top.png +0 -0
  588. data/sproutcore/apps/greenhouse/english.lproj/images/picker/right.png +0 -0
  589. data/sproutcore/apps/greenhouse/english.lproj/images/picker/search-active.png +0 -0
  590. data/sproutcore/apps/greenhouse/english.lproj/images/picker/search.png +0 -0
  591. data/sproutcore/apps/greenhouse/english.lproj/images/picker/top-left.png +0 -0
  592. data/sproutcore/apps/greenhouse/english.lproj/images/picker/top-right.png +0 -0
  593. data/sproutcore/apps/greenhouse/english.lproj/images/picker/top.png +0 -0
  594. data/sproutcore/apps/greenhouse/english.lproj/images/toolbar-bg.png +0 -0
  595. data/sproutcore/apps/greenhouse/english.lproj/inspectors.js +365 -0
  596. data/sproutcore/apps/greenhouse/english.lproj/loading.rhtml +9 -0
  597. data/sproutcore/apps/greenhouse/english.lproj/main_page.js +95 -0
  598. data/sproutcore/apps/greenhouse/english.lproj/strings.js +93 -0
  599. data/sproutcore/apps/greenhouse/fixtures/file.js +35 -0
  600. data/sproutcore/apps/greenhouse/main.js +28 -0
  601. data/sproutcore/apps/greenhouse/mixins/drop_down.js +97 -0
  602. data/sproutcore/apps/greenhouse/models/design.js +26 -0
  603. data/sproutcore/apps/greenhouse/models/dir.js +93 -0
  604. data/sproutcore/apps/greenhouse/models/file.js +51 -0
  605. data/sproutcore/apps/greenhouse/models/target.js +82 -0
  606. data/sproutcore/apps/greenhouse/models/view_config.js +49 -0
  607. data/sproutcore/apps/greenhouse/resources/test_page.js +37 -0
  608. data/sproutcore/apps/greenhouse/states/inspector.js +152 -0
  609. data/sproutcore/apps/greenhouse/states/library.js +142 -0
  610. data/sproutcore/apps/greenhouse/states/main.js +283 -0
  611. data/sproutcore/apps/greenhouse/states/modals.js +299 -0
  612. data/sproutcore/apps/greenhouse/states/ready.js +235 -0
  613. data/sproutcore/apps/greenhouse/tests/controllers/design.js +15 -0
  614. data/sproutcore/apps/greenhouse/tests/controllers/designs.js +15 -0
  615. data/sproutcore/apps/greenhouse/tests/controllers/file.js +15 -0
  616. data/sproutcore/apps/greenhouse/tests/controllers/files.js +15 -0
  617. data/sproutcore/apps/greenhouse/tests/models/file.js +15 -0
  618. data/sproutcore/apps/greenhouse/tests/models/view_config.js +15 -0
  619. data/sproutcore/apps/greenhouse/tests/views/list_item.js +16 -0
  620. data/sproutcore/apps/greenhouse/tests/views/plist_item.js +20 -0
  621. data/sproutcore/apps/greenhouse/theme.js +25 -0
  622. data/sproutcore/apps/greenhouse/views/anchor.js +277 -0
  623. data/sproutcore/apps/greenhouse/views/application_list_item.js +19 -0
  624. data/sproutcore/apps/greenhouse/views/event_blocker.js +32 -0
  625. data/sproutcore/apps/greenhouse/views/label_designer.js +16 -0
  626. data/sproutcore/apps/greenhouse/views/list_item.js +42 -0
  627. data/sproutcore/apps/greenhouse/views/plist_item.js +178 -0
  628. data/sproutcore/apps/greenhouse/views/simple_button.js +157 -0
  629. data/sproutcore/apps/greenhouse/views/tear_off_picker.js +56 -0
  630. data/sproutcore/apps/greenhouse/views/web.js +44 -0
  631. data/sproutcore/apps/test_controls/Buildfile +0 -0
  632. data/sproutcore/apps/test_controls/controllers/buttons.js +21 -0
  633. data/sproutcore/apps/test_controls/controllers/categories.js +108 -0
  634. data/sproutcore/apps/test_controls/controllers/category.js +36 -0
  635. data/sproutcore/apps/test_controls/core.js +29 -0
  636. data/sproutcore/apps/test_controls/main.js +14 -0
  637. data/sproutcore/apps/test_controls/resources/buttons_page.js +142 -0
  638. data/sproutcore/apps/test_controls/resources/checkboxes_page.js +45 -0
  639. data/sproutcore/apps/test_controls/resources/flow_layout_page.js +84 -0
  640. data/sproutcore/apps/test_controls/resources/list_page.js +40 -0
  641. data/sproutcore/apps/test_controls/resources/loading.rhtml +9 -0
  642. data/sproutcore/apps/test_controls/resources/main_page.css +60 -0
  643. data/sproutcore/apps/test_controls/resources/main_page.js +145 -0
  644. data/sproutcore/apps/test_controls/resources/progress_page.js +32 -0
  645. data/sproutcore/apps/test_controls/resources/radio_page.js +48 -0
  646. data/sproutcore/apps/test_controls/resources/scroll_page.js +76 -0
  647. data/sproutcore/apps/test_controls/resources/segmented_page.js +98 -0
  648. data/sproutcore/apps/test_controls/resources/select_page.js +60 -0
  649. data/sproutcore/apps/test_controls/resources/sliders_page.js +53 -0
  650. data/sproutcore/apps/test_controls/resources/strings.js +50 -0
  651. data/sproutcore/apps/test_controls/resources/tab_page.js +44 -0
  652. data/sproutcore/apps/test_controls/resources/text_field_page.js +41 -0
  653. data/sproutcore/apps/test_controls/theme.js +34 -0
  654. data/sproutcore/apps/tests/controllers/detail.js +25 -0
  655. data/sproutcore/apps/tests/controllers/source.js +29 -0
  656. data/sproutcore/apps/tests/controllers/target.js +26 -0
  657. data/sproutcore/apps/tests/controllers/targets.js +86 -0
  658. data/sproutcore/apps/tests/controllers/tests.js +33 -0
  659. data/sproutcore/apps/tests/core.js +133 -0
  660. data/sproutcore/apps/tests/english.lproj/loading.rhtml +9 -0
  661. data/sproutcore/apps/tests/english.lproj/main_page.css +48 -0
  662. data/sproutcore/apps/tests/english.lproj/main_page.js +233 -0
  663. data/sproutcore/apps/tests/english.lproj/strings.js +26 -0
  664. data/sproutcore/apps/tests/main.js +27 -0
  665. data/sproutcore/apps/tests/states/no_targets.js +26 -0
  666. data/sproutcore/apps/tests/states/ready.js +56 -0
  667. data/sproutcore/apps/tests/states/ready_detail.js +41 -0
  668. data/sproutcore/apps/tests/states/ready_empty.js +48 -0
  669. data/sproutcore/apps/tests/states/ready_list.js +41 -0
  670. data/sproutcore/apps/tests/states/ready_loading.js +44 -0
  671. data/sproutcore/apps/tests/states/ready_no_tests.js +31 -0
  672. data/sproutcore/apps/tests/states/start.js +39 -0
  673. data/sproutcore/apps/tests/tests/controllers/detail.js +15 -0
  674. data/sproutcore/apps/tests/tests/controllers/source.js +15 -0
  675. data/sproutcore/apps/tests/tests/controllers/target.js +15 -0
  676. data/sproutcore/apps/tests/tests/controllers/targets.js +15 -0
  677. data/sproutcore/apps/tests/tests/controllers/tests.js +15 -0
  678. data/sproutcore/apps/tests/tests/models/target.js +15 -0
  679. data/sproutcore/apps/tests/tests/models/test.js +15 -0
  680. data/sproutcore/apps/tests/tests/views/offset_checkbox.js +15 -0
  681. data/sproutcore/apps/tests/views/offset_checkbox.js +26 -0
  682. data/sproutcore/apps/welcome/controllers/targets.js +56 -0
  683. data/sproutcore/apps/welcome/core.js +30 -0
  684. data/sproutcore/apps/welcome/english.lproj/images/main-bg.png +0 -0
  685. data/sproutcore/apps/welcome/english.lproj/loading.rhtml +10 -0
  686. data/sproutcore/apps/welcome/english.lproj/main_page.css +25 -0
  687. data/sproutcore/apps/welcome/english.lproj/main_page.js +67 -0
  688. data/sproutcore/apps/welcome/english.lproj/strings.js +15 -0
  689. data/sproutcore/apps/welcome/main.js +19 -0
  690. data/sproutcore/apps/welcome/tests/controllers/targets.js +15 -0
  691. data/sproutcore/design/CollectionView State Charts.graffle +4848 -0
  692. data/sproutcore/design/Design Charts.graffle +16845 -0
  693. data/sproutcore/design/Record State Table.numbers +0 -0
  694. data/sproutcore/design/SproutCore Datastore Design.graffle/QuickLook/Preview.pdf +0 -0
  695. data/sproutcore/design/SproutCore Datastore Design.graffle/QuickLook/Thumbnail.tiff +0 -0
  696. data/sproutcore/design/SproutCore Datastore Design.graffle/data.plist +19588 -0
  697. data/sproutcore/design/SproutCore Datastore Design.graffle/image8.png +0 -0
  698. data/sproutcore/design/SproutCore Design Template.graffle/QuickLook/Preview.pdf +0 -0
  699. data/sproutcore/design/SproutCore Design Template.graffle/QuickLook/Thumbnail.tiff +0 -0
  700. data/sproutcore/design/SproutCore Design Template.graffle/data.plist +1452 -0
  701. data/sproutcore/design/SproutCore Design Template.graffle/image8.png +0 -0
  702. data/sproutcore/design/TestRunner Design.graffle/QuickLook/Preview.pdf +0 -0
  703. data/sproutcore/design/TestRunner Design.graffle/QuickLook/Thumbnail.tiff +0 -0
  704. data/sproutcore/design/TestRunner Design.graffle/data.plist +24187 -0
  705. data/sproutcore/design/TestRunner Design.graffle/image10.png +0 -0
  706. data/sproutcore/design/TestRunner Design.graffle/image11.png +0 -0
  707. data/sproutcore/design/TestRunner Design.graffle/image13.png +0 -0
  708. data/sproutcore/design/TestRunner Design.graffle/image15.png +0 -0
  709. data/sproutcore/design/TestRunner Design.graffle/image16.png +0 -0
  710. data/sproutcore/design/TestRunner Design.graffle/image17.png +0 -0
  711. data/sproutcore/design/TestRunner Design.graffle/image18.png +0 -0
  712. data/sproutcore/design/TestRunner Design.graffle/image19.png +0 -0
  713. data/sproutcore/design/TestRunner Design.graffle/image22.tiff +0 -0
  714. data/sproutcore/design/TestRunner Design.graffle/image23.png +0 -0
  715. data/sproutcore/design/TestRunner Design.graffle/image24.png +0 -0
  716. data/sproutcore/design/TestRunner Design.graffle/image25.png +0 -0
  717. data/sproutcore/design/TestRunner Design.graffle/image30.png +0 -0
  718. data/sproutcore/design/TestRunner Design.graffle/image31.png +0 -0
  719. data/sproutcore/design/TestRunner Design.graffle/image8.png +0 -0
  720. data/sproutcore/design/TestRunner Design.graffle/image9.png +0 -0
  721. data/sproutcore/design/greenhouse-statechart.graffle +9025 -0
  722. data/sproutcore/design/greenhouse-statechart.pdf +0 -0
  723. data/sproutcore/design/iphone-webapp-loading.psd +0 -0
  724. data/sproutcore/frameworks/animation/Buildfile +3 -0
  725. data/sproutcore/frameworks/animation/LICENSE +25 -0
  726. data/sproutcore/frameworks/animation/README.md +79 -0
  727. data/sproutcore/frameworks/animation/core.js +1206 -0
  728. data/sproutcore/frameworks/animation/tests/core.js +152 -0
  729. data/sproutcore/frameworks/bootstrap/README +9 -0
  730. data/sproutcore/frameworks/bootstrap/core.js +7 -0
  731. data/sproutcore/frameworks/bootstrap/setup_body_class_names.js +10 -0
  732. data/sproutcore/frameworks/bootstrap/system/bench.js +14 -0
  733. data/sproutcore/frameworks/bootstrap/system/browser.js +65 -0
  734. data/sproutcore/frameworks/bootstrap/system/loader.js +50 -0
  735. data/sproutcore/frameworks/bootstrap/tests/system/browser.js +187 -0
  736. data/sproutcore/frameworks/core_foundation/.greenhouseconf +33 -0
  737. data/sproutcore/frameworks/core_foundation/controllers/array.js +498 -0
  738. data/sproutcore/frameworks/core_foundation/controllers/controller.js +44 -0
  739. data/sproutcore/frameworks/core_foundation/controllers/object.js +342 -0
  740. data/sproutcore/frameworks/core_foundation/core.js +201 -0
  741. data/sproutcore/frameworks/core_foundation/ext/object.js +83 -0
  742. data/sproutcore/frameworks/core_foundation/ext/run_loop.js +163 -0
  743. data/sproutcore/frameworks/core_foundation/mixins/delegate_support.js +110 -0
  744. data/sproutcore/frameworks/core_foundation/mixins/responder_context.js +269 -0
  745. data/sproutcore/frameworks/core_foundation/mixins/selection_support.js +250 -0
  746. data/sproutcore/frameworks/core_foundation/mixins/string.js +163 -0
  747. data/sproutcore/frameworks/core_foundation/panes/keyboard.js +68 -0
  748. data/sproutcore/frameworks/core_foundation/panes/layout.js +108 -0
  749. data/sproutcore/frameworks/core_foundation/panes/main.js +52 -0
  750. data/sproutcore/frameworks/core_foundation/panes/manipulation.js +27 -0
  751. data/sproutcore/frameworks/core_foundation/panes/pane.js +672 -0
  752. data/sproutcore/frameworks/core_foundation/panes/template.js +24 -0
  753. data/sproutcore/frameworks/core_foundation/panes/visibility.js +11 -0
  754. data/sproutcore/frameworks/core_foundation/protocols/observable_protocol.js +40 -0
  755. data/sproutcore/frameworks/core_foundation/protocols/sparse_array_delegate.js +131 -0
  756. data/sproutcore/frameworks/core_foundation/resources/core.css +371 -0
  757. data/sproutcore/frameworks/core_foundation/resources/view.css +57 -0
  758. data/sproutcore/frameworks/core_foundation/system/application.js +35 -0
  759. data/sproutcore/frameworks/core_foundation/system/browser.js +36 -0
  760. data/sproutcore/frameworks/core_foundation/system/builder.js +210 -0
  761. data/sproutcore/frameworks/core_foundation/system/core_query.js +141 -0
  762. data/sproutcore/frameworks/core_foundation/system/cursor.js +131 -0
  763. data/sproutcore/frameworks/core_foundation/system/device.js +210 -0
  764. data/sproutcore/frameworks/core_foundation/system/event.js +914 -0
  765. data/sproutcore/frameworks/core_foundation/system/json.js +515 -0
  766. data/sproutcore/frameworks/core_foundation/system/locale.js +293 -0
  767. data/sproutcore/frameworks/core_foundation/system/page.js +108 -0
  768. data/sproutcore/frameworks/core_foundation/system/platform.js +399 -0
  769. data/sproutcore/frameworks/core_foundation/system/ready.js +77 -0
  770. data/sproutcore/frameworks/core_foundation/system/render_context.js +1063 -0
  771. data/sproutcore/frameworks/core_foundation/system/responder.js +124 -0
  772. data/sproutcore/frameworks/core_foundation/system/root_responder.js +2173 -0
  773. data/sproutcore/frameworks/core_foundation/system/selection_set.js +695 -0
  774. data/sproutcore/frameworks/core_foundation/system/sparse_array.js +393 -0
  775. data/sproutcore/frameworks/core_foundation/system/theme.js +316 -0
  776. data/sproutcore/frameworks/core_foundation/system/timer.js +553 -0
  777. data/sproutcore/frameworks/core_foundation/system/utils.js +151 -0
  778. data/sproutcore/frameworks/core_foundation/system/utils/rect.js +98 -0
  779. data/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +218 -0
  780. data/sproutcore/frameworks/core_foundation/tests/controllers/array/enum_case.js +206 -0
  781. data/sproutcore/frameworks/core_foundation/tests/controllers/array/null_case.js +64 -0
  782. data/sproutcore/frameworks/core_foundation/tests/controllers/array/selection_support.js +344 -0
  783. data/sproutcore/frameworks/core_foundation/tests/controllers/array/single_case.js +136 -0
  784. data/sproutcore/frameworks/core_foundation/tests/controllers/object/empty_case.js +82 -0
  785. data/sproutcore/frameworks/core_foundation/tests/controllers/object/multiple_case.js +111 -0
  786. data/sproutcore/frameworks/core_foundation/tests/controllers/object/single_case.js +193 -0
  787. data/sproutcore/frameworks/core_foundation/tests/controllers/object/single_enumerable_case.js +265 -0
  788. data/sproutcore/frameworks/core_foundation/tests/mixins/responder_context.js +75 -0
  789. data/sproutcore/frameworks/core_foundation/tests/mixins/string.js +55 -0
  790. data/sproutcore/frameworks/core_foundation/tests/panes/template.js +14 -0
  791. data/sproutcore/frameworks/core_foundation/tests/system/builder.js +42 -0
  792. data/sproutcore/frameworks/core_foundation/tests/system/core_query/within.js +65 -0
  793. data/sproutcore/frameworks/core_foundation/tests/system/json.js +14 -0
  794. data/sproutcore/frameworks/core_foundation/tests/system/locale.js +134 -0
  795. data/sproutcore/frameworks/core_foundation/tests/system/ready/done.js +32 -0
  796. data/sproutcore/frameworks/core_foundation/tests/system/render_context/begin.js +47 -0
  797. data/sproutcore/frameworks/core_foundation/tests/system/render_context/element.js +44 -0
  798. data/sproutcore/frameworks/core_foundation/tests/system/render_context/end.js +124 -0
  799. data/sproutcore/frameworks/core_foundation/tests/system/render_context/get.js +51 -0
  800. data/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_attr.js +50 -0
  801. data/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_basic.js +28 -0
  802. data/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_className.js +177 -0
  803. data/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +109 -0
  804. data/sproutcore/frameworks/core_foundation/tests/system/render_context/init.js +55 -0
  805. data/sproutcore/frameworks/core_foundation/tests/system/render_context/join.js +28 -0
  806. data/sproutcore/frameworks/core_foundation/tests/system/render_context/push_text.js +74 -0
  807. data/sproutcore/frameworks/core_foundation/tests/system/render_context/tag.js +46 -0
  808. data/sproutcore/frameworks/core_foundation/tests/system/render_context/update.js +218 -0
  809. data/sproutcore/frameworks/core_foundation/tests/system/root_responder/makeKeyPane.js +124 -0
  810. data/sproutcore/frameworks/core_foundation/tests/system/root_responder/makeMainPane.js +68 -0
  811. data/sproutcore/frameworks/core_foundation/tests/system/root_responder/makeMenuPane.js +48 -0
  812. data/sproutcore/frameworks/core_foundation/tests/system/root_responder/root_responder.js +101 -0
  813. data/sproutcore/frameworks/core_foundation/tests/system/root_responder/targetForAction.js +288 -0
  814. data/sproutcore/frameworks/core_foundation/tests/system/selection_set/add.js +92 -0
  815. data/sproutcore/frameworks/core_foundation/tests/system/selection_set/copy.js +17 -0
  816. data/sproutcore/frameworks/core_foundation/tests/system/selection_set/indexSetForSource.js +98 -0
  817. data/sproutcore/frameworks/core_foundation/tests/system/selection_set/isEqual.js +60 -0
  818. data/sproutcore/frameworks/core_foundation/tests/system/selection_set/remove.js +111 -0
  819. data/sproutcore/frameworks/core_foundation/tests/system/sparse_array.js +194 -0
  820. data/sproutcore/frameworks/core_foundation/tests/system/theme.js +77 -0
  821. data/sproutcore/frameworks/core_foundation/tests/system/timer/invalidate.js +38 -0
  822. data/sproutcore/frameworks/core_foundation/tests/system/timer/invokeLater.js +203 -0
  823. data/sproutcore/frameworks/core_foundation/tests/system/timer/isPaused.js +71 -0
  824. data/sproutcore/frameworks/core_foundation/tests/system/timer/performAction.js +69 -0
  825. data/sproutcore/frameworks/core_foundation/tests/system/timer/schedule.js +170 -0
  826. data/sproutcore/frameworks/core_foundation/tests/system/utils/normalizeURL.js +18 -0
  827. data/sproutcore/frameworks/core_foundation/tests/system/utils/offset.js +271 -0
  828. data/sproutcore/frameworks/core_foundation/tests/system/utils/rect.js +99 -0
  829. data/sproutcore/frameworks/core_foundation/tests/views/main_pane.js +43 -0
  830. data/sproutcore/frameworks/core_foundation/tests/views/pane/append_remove.js +218 -0
  831. data/sproutcore/frameworks/core_foundation/tests/views/pane/child_view.js +20 -0
  832. data/sproutcore/frameworks/core_foundation/tests/views/pane/firstResponder.js +148 -0
  833. data/sproutcore/frameworks/core_foundation/tests/views/pane/keyPane.js +133 -0
  834. data/sproutcore/frameworks/core_foundation/tests/views/pane/layout.js +31 -0
  835. data/sproutcore/frameworks/core_foundation/tests/views/pane/sendEvent.js +206 -0
  836. data/sproutcore/frameworks/core_foundation/tests/views/template/checkbox_support.js +32 -0
  837. data/sproutcore/frameworks/core_foundation/tests/views/template/text_field_support.js +73 -0
  838. data/sproutcore/frameworks/core_foundation/tests/views/template_view/collection.js +111 -0
  839. data/sproutcore/frameworks/core_foundation/tests/views/template_view/core.js +100 -0
  840. data/sproutcore/frameworks/core_foundation/tests/views/template_view/handlebars.js +580 -0
  841. data/sproutcore/frameworks/core_foundation/tests/views/view/animation.js +376 -0
  842. data/sproutcore/frameworks/core_foundation/tests/views/view/build.js +85 -0
  843. data/sproutcore/frameworks/core_foundation/tests/views/view/build_children.js +89 -0
  844. data/sproutcore/frameworks/core_foundation/tests/views/view/clippingFrame.js +117 -0
  845. data/sproutcore/frameworks/core_foundation/tests/views/view/convertFrames.js +248 -0
  846. data/sproutcore/frameworks/core_foundation/tests/views/view/convertLayouts.js +145 -0
  847. data/sproutcore/frameworks/core_foundation/tests/views/view/createChildViews.js +132 -0
  848. data/sproutcore/frameworks/core_foundation/tests/views/view/createLayer.js +97 -0
  849. data/sproutcore/frameworks/core_foundation/tests/views/view/destroyLayer.js +83 -0
  850. data/sproutcore/frameworks/core_foundation/tests/views/view/didAppendToDocument.js +51 -0
  851. data/sproutcore/frameworks/core_foundation/tests/views/view/findLayerInParentLayer.js +50 -0
  852. data/sproutcore/frameworks/core_foundation/tests/views/view/init.js +50 -0
  853. data/sproutcore/frameworks/core_foundation/tests/views/view/insertBefore.js +217 -0
  854. data/sproutcore/frameworks/core_foundation/tests/views/view/isVisible.js +79 -0
  855. data/sproutcore/frameworks/core_foundation/tests/views/view/isVisibleInWindow.js +116 -0
  856. data/sproutcore/frameworks/core_foundation/tests/views/view/keyboard.js +22 -0
  857. data/sproutcore/frameworks/core_foundation/tests/views/view/layer.js +150 -0
  858. data/sproutcore/frameworks/core_foundation/tests/views/view/layoutChildViews.js +162 -0
  859. data/sproutcore/frameworks/core_foundation/tests/views/view/layoutDidChange.js +180 -0
  860. data/sproutcore/frameworks/core_foundation/tests/views/view/layoutStyle.js +735 -0
  861. data/sproutcore/frameworks/core_foundation/tests/views/view/parentViewDidChange.js +67 -0
  862. data/sproutcore/frameworks/core_foundation/tests/views/view/prepareContext.js +203 -0
  863. data/sproutcore/frameworks/core_foundation/tests/views/view/removeChild.js +189 -0
  864. data/sproutcore/frameworks/core_foundation/tests/views/view/render.js +125 -0
  865. data/sproutcore/frameworks/core_foundation/tests/views/view/render_delegate_support.js +163 -0
  866. data/sproutcore/frameworks/core_foundation/tests/views/view/replaceChild.js +29 -0
  867. data/sproutcore/frameworks/core_foundation/tests/views/view/static_layout.js +21 -0
  868. data/sproutcore/frameworks/core_foundation/tests/views/view/theme.js +43 -0
  869. data/sproutcore/frameworks/core_foundation/tests/views/view/updateLayer.js +148 -0
  870. data/sproutcore/frameworks/core_foundation/tests/views/view/updateLayerLocation.js +213 -0
  871. data/sproutcore/frameworks/core_foundation/tests/views/view/view.js +64 -0
  872. data/sproutcore/frameworks/core_foundation/tests/views/view/viewDidResize.js +202 -0
  873. data/sproutcore/frameworks/core_foundation/views/template.js +77 -0
  874. data/sproutcore/frameworks/core_foundation/views/template/checkbox_support.js +20 -0
  875. data/sproutcore/frameworks/core_foundation/views/template/collection.js +106 -0
  876. data/sproutcore/frameworks/core_foundation/views/template/text_field_support.js +35 -0
  877. data/sproutcore/frameworks/core_foundation/views/view.js +1458 -0
  878. data/sproutcore/frameworks/core_foundation/views/view/animation.js +181 -0
  879. data/sproutcore/frameworks/core_foundation/views/view/base.js +1 -0
  880. data/sproutcore/frameworks/core_foundation/views/view/cursor.js +48 -0
  881. data/sproutcore/frameworks/core_foundation/views/view/enabled.js +57 -0
  882. data/sproutcore/frameworks/core_foundation/views/view/keyboard.js +223 -0
  883. data/sproutcore/frameworks/core_foundation/views/view/layout.js +1087 -0
  884. data/sproutcore/frameworks/core_foundation/views/view/layout_style.js +618 -0
  885. data/sproutcore/frameworks/core_foundation/views/view/manipulation.js +426 -0
  886. data/sproutcore/frameworks/core_foundation/views/view/theming.js +362 -0
  887. data/sproutcore/frameworks/core_foundation/views/view/touch.js +67 -0
  888. data/sproutcore/frameworks/core_foundation/views/view/visibility.js +118 -0
  889. data/sproutcore/frameworks/core_tools/core.js +20 -0
  890. data/sproutcore/frameworks/core_tools/data_source.js +99 -0
  891. data/sproutcore/frameworks/core_tools/english.lproj/strings.js +15 -0
  892. data/sproutcore/frameworks/core_tools/fixtures/target.js +87 -0
  893. data/sproutcore/frameworks/core_tools/fixtures/test.js +44 -0
  894. data/sproutcore/frameworks/core_tools/models/target.js +108 -0
  895. data/sproutcore/frameworks/core_tools/models/test.js +48 -0
  896. data/sproutcore/frameworks/datastore/core.js +8 -0
  897. data/sproutcore/frameworks/datastore/data_sources/cascade.js +180 -0
  898. data/sproutcore/frameworks/datastore/data_sources/data_source.js +583 -0
  899. data/sproutcore/frameworks/datastore/data_sources/fixtures.js +393 -0
  900. data/sproutcore/frameworks/datastore/debug/json.js +71 -0
  901. data/sproutcore/frameworks/datastore/debug/standard_setup.js +96 -0
  902. data/sproutcore/frameworks/datastore/fixtures/author_fixtures.js +2503 -0
  903. data/sproutcore/frameworks/datastore/fixtures/sample.js +17 -0
  904. data/sproutcore/frameworks/datastore/models/child_attribute.js +96 -0
  905. data/sproutcore/frameworks/datastore/models/children_attribute.js +75 -0
  906. data/sproutcore/frameworks/datastore/models/fetched_attribute.js +100 -0
  907. data/sproutcore/frameworks/datastore/models/many_attribute.js +154 -0
  908. data/sproutcore/frameworks/datastore/models/record.js +1318 -0
  909. data/sproutcore/frameworks/datastore/models/record_attribute.js +567 -0
  910. data/sproutcore/frameworks/datastore/models/single_attribute.js +159 -0
  911. data/sproutcore/frameworks/datastore/system/child_array.js +222 -0
  912. data/sproutcore/frameworks/datastore/system/many_array.js +418 -0
  913. data/sproutcore/frameworks/datastore/system/nested_store.js +609 -0
  914. data/sproutcore/frameworks/datastore/system/query.js +1599 -0
  915. data/sproutcore/frameworks/datastore/system/record_array.js +710 -0
  916. data/sproutcore/frameworks/datastore/system/store.js +2860 -0
  917. data/sproutcore/frameworks/datastore/tests/data_sources/cascade.js +133 -0
  918. data/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +122 -0
  919. data/sproutcore/frameworks/datastore/tests/integration/contact_model.js +131 -0
  920. data/sproutcore/frameworks/datastore/tests/integration/cyclical_relationship.js +119 -0
  921. data/sproutcore/frameworks/datastore/tests/integration/mail_model.js +91 -0
  922. data/sproutcore/frameworks/datastore/tests/integration/test_runner_model.js +56 -0
  923. data/sproutcore/frameworks/datastore/tests/models/datetime_recordattribute.js +73 -0
  924. data/sproutcore/frameworks/datastore/tests/models/many_attribute.js +423 -0
  925. data/sproutcore/frameworks/datastore/tests/models/nested_records/data_store.js +180 -0
  926. data/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +309 -0
  927. data/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +363 -0
  928. data/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +421 -0
  929. data/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +304 -0
  930. data/sproutcore/frameworks/datastore/tests/models/record/core_methods.js +55 -0
  931. data/sproutcore/frameworks/datastore/tests/models/record/destroy.js +92 -0
  932. data/sproutcore/frameworks/datastore/tests/models/record/error_methods.js +56 -0
  933. data/sproutcore/frameworks/datastore/tests/models/record/normalize.js +336 -0
  934. data/sproutcore/frameworks/datastore/tests/models/record/readAttribute.js +53 -0
  935. data/sproutcore/frameworks/datastore/tests/models/record/refresh.js +48 -0
  936. data/sproutcore/frameworks/datastore/tests/models/record/storeDidChangeProperties.js +170 -0
  937. data/sproutcore/frameworks/datastore/tests/models/record/unknownProperty.js +66 -0
  938. data/sproutcore/frameworks/datastore/tests/models/record/writeAttribute.js +112 -0
  939. data/sproutcore/frameworks/datastore/tests/models/record_attribute.js +252 -0
  940. data/sproutcore/frameworks/datastore/tests/models/single_attribute.js +284 -0
  941. data/sproutcore/frameworks/datastore/tests/system/many_array/core_methods.js +204 -0
  942. data/sproutcore/frameworks/datastore/tests/system/nested_store/chain.js +180 -0
  943. data/sproutcore/frameworks/datastore/tests/system/nested_store/commitChanges.js +173 -0
  944. data/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +158 -0
  945. data/sproutcore/frameworks/datastore/tests/system/nested_store/core_methods.js +70 -0
  946. data/sproutcore/frameworks/datastore/tests/system/nested_store/dataHashDidChange.js +113 -0
  947. data/sproutcore/frameworks/datastore/tests/system/nested_store/discardChanges.js +102 -0
  948. data/sproutcore/frameworks/datastore/tests/system/nested_store/readDataHash.js +180 -0
  949. data/sproutcore/frameworks/datastore/tests/system/nested_store/readEditableDataHash.js +126 -0
  950. data/sproutcore/frameworks/datastore/tests/system/nested_store/removeDataHash.js +163 -0
  951. data/sproutcore/frameworks/datastore/tests/system/nested_store/writeDataHash.js +166 -0
  952. data/sproutcore/frameworks/datastore/tests/system/query/builders.js +219 -0
  953. data/sproutcore/frameworks/datastore/tests/system/query/compare.js +144 -0
  954. data/sproutcore/frameworks/datastore/tests/system/query/contains.js +131 -0
  955. data/sproutcore/frameworks/datastore/tests/system/query/containsRecordTypes.js +81 -0
  956. data/sproutcore/frameworks/datastore/tests/system/query/copy.js +30 -0
  957. data/sproutcore/frameworks/datastore/tests/system/query/evaluation.js +197 -0
  958. data/sproutcore/frameworks/datastore/tests/system/query/evaluation_of_records.js +92 -0
  959. data/sproutcore/frameworks/datastore/tests/system/query/expandedRecordTypes.js +64 -0
  960. data/sproutcore/frameworks/datastore/tests/system/query/parse.js +216 -0
  961. data/sproutcore/frameworks/datastore/tests/system/query/queryWithScope.js +57 -0
  962. data/sproutcore/frameworks/datastore/tests/system/query/record_type_is.js +47 -0
  963. data/sproutcore/frameworks/datastore/tests/system/query/registered_comparisons.js +70 -0
  964. data/sproutcore/frameworks/datastore/tests/system/query/registered_query_extensions.js +71 -0
  965. data/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +177 -0
  966. data/sproutcore/frameworks/datastore/tests/system/record_array/error_methods.js +50 -0
  967. data/sproutcore/frameworks/datastore/tests/system/record_array/flush.js +214 -0
  968. data/sproutcore/frameworks/datastore/tests/system/store/cancelRecord.js +54 -0
  969. data/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +137 -0
  970. data/sproutcore/frameworks/datastore/tests/system/store/commitRecord.js +221 -0
  971. data/sproutcore/frameworks/datastore/tests/system/store/core_methods.js +156 -0
  972. data/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +76 -0
  973. data/sproutcore/frameworks/datastore/tests/system/store/dataHashDidChange.js +157 -0
  974. data/sproutcore/frameworks/datastore/tests/system/store/dataSourceCallbacks.js +278 -0
  975. data/sproutcore/frameworks/datastore/tests/system/store/destroyRecord.js +110 -0
  976. data/sproutcore/frameworks/datastore/tests/system/store/error_methods.js +62 -0
  977. data/sproutcore/frameworks/datastore/tests/system/store/find.js +530 -0
  978. data/sproutcore/frameworks/datastore/tests/system/store/init.js +23 -0
  979. data/sproutcore/frameworks/datastore/tests/system/store/loadRecord.js +64 -0
  980. data/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +61 -0
  981. data/sproutcore/frameworks/datastore/tests/system/store/readDataHash.js +74 -0
  982. data/sproutcore/frameworks/datastore/tests/system/store/readEditableDataHash.js +74 -0
  983. data/sproutcore/frameworks/datastore/tests/system/store/recordDidChange.js +76 -0
  984. data/sproutcore/frameworks/datastore/tests/system/store/removeDataHash.js +144 -0
  985. data/sproutcore/frameworks/datastore/tests/system/store/retrieveRecord.js +200 -0
  986. data/sproutcore/frameworks/datastore/tests/system/store/unloadRecords.js +41 -0
  987. data/sproutcore/frameworks/datastore/tests/system/store/writeDataHash.js +125 -0
  988. data/sproutcore/frameworks/datetime/resources/strings.js +14 -0
  989. data/sproutcore/frameworks/datetime/system/datetime.js +1111 -0
  990. data/sproutcore/frameworks/datetime/tests/system/datetime.js +383 -0
  991. data/sproutcore/frameworks/debug/core.js +114 -0
  992. data/sproutcore/frameworks/debug/invoke_once_last_debugging.js +259 -0
  993. data/sproutcore/frameworks/designer/coders/design.js +20 -0
  994. data/sproutcore/frameworks/designer/coders/object.js +347 -0
  995. data/sproutcore/frameworks/designer/controllers/controllers.js +16 -0
  996. data/sproutcore/frameworks/designer/controllers/design.js +37 -0
  997. data/sproutcore/frameworks/designer/controllers/designs.js +133 -0
  998. data/sproutcore/frameworks/designer/controllers/page_design.js +170 -0
  999. data/sproutcore/frameworks/designer/controllers/page_files.js +22 -0
  1000. data/sproutcore/frameworks/designer/core.js +26 -0
  1001. data/sproutcore/frameworks/designer/css/css_rule.js +22 -0
  1002. data/sproutcore/frameworks/designer/css/css_style.js +29 -0
  1003. data/sproutcore/frameworks/designer/css/css_style_sheet.js +201 -0
  1004. data/sproutcore/frameworks/designer/designers/button.js +21 -0
  1005. data/sproutcore/frameworks/designer/designers/label.js +16 -0
  1006. data/sproutcore/frameworks/designer/designers/object_designer.js +296 -0
  1007. data/sproutcore/frameworks/designer/designers/tab.js +18 -0
  1008. data/sproutcore/frameworks/designer/designers/text_field.js +15 -0
  1009. data/sproutcore/frameworks/designer/designers/view_designer.js +1267 -0
  1010. data/sproutcore/frameworks/designer/english.lproj/css/designer.css +96 -0
  1011. data/sproutcore/frameworks/designer/english.lproj/design_page.js +55 -0
  1012. data/sproutcore/frameworks/designer/english.lproj/high_light.css +10 -0
  1013. data/sproutcore/frameworks/designer/english.lproj/images/controller.png +0 -0
  1014. data/sproutcore/frameworks/designer/english.lproj/images/dock-bg.png +0 -0
  1015. data/sproutcore/frameworks/designer/english.lproj/images/dock-item-bg.png +0 -0
  1016. data/sproutcore/frameworks/designer/english.lproj/images/dock-item-divider.png +0 -0
  1017. data/sproutcore/frameworks/designer/english.lproj/images/dock-item-sel-bg.png +0 -0
  1018. data/sproutcore/frameworks/designer/english.lproj/images/dock-item-sel-divider.png +0 -0
  1019. data/sproutcore/frameworks/designer/english.lproj/images/main-bg.png +0 -0
  1020. data/sproutcore/frameworks/designer/english.lproj/images/page.png +0 -0
  1021. data/sproutcore/frameworks/designer/english.lproj/images/pane.png +0 -0
  1022. data/sproutcore/frameworks/designer/english.lproj/images/view.png +0 -0
  1023. data/sproutcore/frameworks/designer/english.lproj/selection_handles.css +58 -0
  1024. data/sproutcore/frameworks/designer/ext/binding.js +33 -0
  1025. data/sproutcore/frameworks/designer/ext/object.js +26 -0
  1026. data/sproutcore/frameworks/designer/ext/page.js +58 -0
  1027. data/sproutcore/frameworks/designer/ext/view.js +27 -0
  1028. data/sproutcore/frameworks/designer/mixins/button.js +11 -0
  1029. data/sproutcore/frameworks/designer/mixins/snap_lines.js +221 -0
  1030. data/sproutcore/frameworks/designer/tests/coders/page.js +54 -0
  1031. data/sproutcore/frameworks/designer/tests/designers/view_designer.js +47 -0
  1032. data/sproutcore/frameworks/designer/views/designer_drop_target.js +144 -0
  1033. data/sproutcore/frameworks/designer/views/drawing.js +219 -0
  1034. data/sproutcore/frameworks/designer/views/high_light.js +66 -0
  1035. data/sproutcore/frameworks/designer/views/page_item_view.js +130 -0
  1036. data/sproutcore/frameworks/designer/views/selection_handles.js +78 -0
  1037. data/sproutcore/frameworks/desktop/.greenhouseconf +218 -0
  1038. data/sproutcore/frameworks/desktop/core.js +18 -0
  1039. data/sproutcore/frameworks/desktop/debug/drag.js +41 -0
  1040. data/sproutcore/frameworks/desktop/english.lproj/alert.css +56 -0
  1041. data/sproutcore/frameworks/desktop/english.lproj/debug/a_sample_image.jpg +0 -0
  1042. data/sproutcore/frameworks/desktop/english.lproj/debug/apple-logo1.jpeg +0 -0
  1043. data/sproutcore/frameworks/desktop/english.lproj/debug/iframe.html +23 -0
  1044. data/sproutcore/frameworks/desktop/english.lproj/disclosure.css +74 -0
  1045. data/sproutcore/frameworks/desktop/english.lproj/drag.css +7 -0
  1046. data/sproutcore/frameworks/desktop/english.lproj/icons.css +943 -0
  1047. data/sproutcore/frameworks/desktop/english.lproj/images/cap.png +0 -0
  1048. data/sproutcore/frameworks/desktop/english.lproj/images/downbutton.png +0 -0
  1049. data/sproutcore/frameworks/desktop/english.lproj/images/icons/shared.png +0 -0
  1050. data/sproutcore/frameworks/desktop/english.lproj/images/thumb-bottom.png +0 -0
  1051. data/sproutcore/frameworks/desktop/english.lproj/images/thumb-center.png +0 -0
  1052. data/sproutcore/frameworks/desktop/english.lproj/images/thumb-top.png +0 -0
  1053. data/sproutcore/frameworks/desktop/english.lproj/images/track.png +0 -0
  1054. data/sproutcore/frameworks/desktop/english.lproj/images/upbutton.png +0 -0
  1055. data/sproutcore/frameworks/desktop/english.lproj/list_item.css +185 -0
  1056. data/sproutcore/frameworks/desktop/english.lproj/menu.css +12 -0
  1057. data/sproutcore/frameworks/desktop/english.lproj/menu_item_view.css +109 -0
  1058. data/sproutcore/frameworks/desktop/english.lproj/modal.css +9 -0
  1059. data/sproutcore/frameworks/desktop/english.lproj/panel.css +91 -0
  1060. data/sproutcore/frameworks/desktop/english.lproj/picker.css +35 -0
  1061. data/sproutcore/frameworks/desktop/english.lproj/progress.css +33 -0
  1062. data/sproutcore/frameworks/desktop/english.lproj/radio.css +10 -0
  1063. data/sproutcore/frameworks/desktop/english.lproj/segmented.css +132 -0
  1064. data/sproutcore/frameworks/desktop/english.lproj/separator.css +19 -0
  1065. data/sproutcore/frameworks/desktop/english.lproj/slider.css +66 -0
  1066. data/sproutcore/frameworks/desktop/english.lproj/split.css +0 -0
  1067. data/sproutcore/frameworks/desktop/english.lproj/split_divider.css +6 -0
  1068. data/sproutcore/frameworks/desktop/english.lproj/strings.js +14 -0
  1069. data/sproutcore/frameworks/desktop/english.lproj/tab.css +7 -0
  1070. data/sproutcore/frameworks/desktop/english.lproj/toolbar.css +5 -0
  1071. data/sproutcore/frameworks/desktop/english.lproj/touch-scroller.css +196 -0
  1072. data/sproutcore/frameworks/desktop/english.lproj/well.css +71 -0
  1073. data/sproutcore/frameworks/desktop/mixins/border.js +151 -0
  1074. data/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +694 -0
  1075. data/sproutcore/frameworks/desktop/mixins/collection_group.js +22 -0
  1076. data/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +95 -0
  1077. data/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +295 -0
  1078. data/sproutcore/frameworks/desktop/mixins/navigation_builder.js +130 -0
  1079. data/sproutcore/frameworks/desktop/mixins/scrollable.js +253 -0
  1080. data/sproutcore/frameworks/desktop/panes/alert.js +457 -0
  1081. data/sproutcore/frameworks/desktop/panes/menu.js +1141 -0
  1082. data/sproutcore/frameworks/desktop/panes/modal.js +71 -0
  1083. data/sproutcore/frameworks/desktop/panes/palette.js +74 -0
  1084. data/sproutcore/frameworks/desktop/panes/panel.js +207 -0
  1085. data/sproutcore/frameworks/desktop/panes/picker.js +796 -0
  1086. data/sproutcore/frameworks/desktop/panes/select_button.js +895 -0
  1087. data/sproutcore/frameworks/desktop/panes/sheet.js +214 -0
  1088. data/sproutcore/frameworks/desktop/protocols/drag_data_source.js +39 -0
  1089. data/sproutcore/frameworks/desktop/protocols/drag_source.js +81 -0
  1090. data/sproutcore/frameworks/desktop/protocols/drop_target.js +175 -0
  1091. data/sproutcore/frameworks/desktop/protocols/responder.js +299 -0
  1092. data/sproutcore/frameworks/desktop/render_delegates/button.js +105 -0
  1093. data/sproutcore/frameworks/desktop/render_delegates/checkbox.js +100 -0
  1094. data/sproutcore/frameworks/desktop/render_delegates/collection.js +24 -0
  1095. data/sproutcore/frameworks/desktop/render_delegates/disclosure.js +69 -0
  1096. data/sproutcore/frameworks/desktop/render_delegates/helpers/slicing.js +34 -0
  1097. data/sproutcore/frameworks/desktop/render_delegates/image_button.js +30 -0
  1098. data/sproutcore/frameworks/desktop/render_delegates/master_detail.js +28 -0
  1099. data/sproutcore/frameworks/desktop/render_delegates/menu.js +47 -0
  1100. data/sproutcore/frameworks/desktop/render_delegates/panel.js +28 -0
  1101. data/sproutcore/frameworks/desktop/render_delegates/picker.js +43 -0
  1102. data/sproutcore/frameworks/desktop/render_delegates/progress.js +187 -0
  1103. data/sproutcore/frameworks/desktop/render_delegates/radio.js +95 -0
  1104. data/sproutcore/frameworks/desktop/render_delegates/radio_group.js +109 -0
  1105. data/sproutcore/frameworks/desktop/render_delegates/segment.js +55 -0
  1106. data/sproutcore/frameworks/desktop/render_delegates/segmented.js +77 -0
  1107. data/sproutcore/frameworks/desktop/render_delegates/slider.js +58 -0
  1108. data/sproutcore/frameworks/desktop/render_delegates/source_list.js +8 -0
  1109. data/sproutcore/frameworks/desktop/render_delegates/toolbar.js +18 -0
  1110. data/sproutcore/frameworks/desktop/render_delegates/well.js +27 -0
  1111. data/sproutcore/frameworks/desktop/render_delegates/workspace.js +18 -0
  1112. data/sproutcore/frameworks/desktop/system/drag.js +974 -0
  1113. data/sproutcore/frameworks/desktop/system/key_bindings.js +40 -0
  1114. data/sproutcore/frameworks/desktop/system/undo_manager.js +187 -0
  1115. data/sproutcore/frameworks/desktop/tests/integration/dialog.js +48 -0
  1116. data/sproutcore/frameworks/desktop/tests/mixins/border.js +97 -0
  1117. data/sproutcore/frameworks/desktop/tests/panes/alert/methods.js +10 -0
  1118. data/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +158 -0
  1119. data/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +135 -0
  1120. data/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +258 -0
  1121. data/sproutcore/frameworks/desktop/tests/panes/palette/methods.js +10 -0
  1122. data/sproutcore/frameworks/desktop/tests/panes/palette/ui.js +35 -0
  1123. data/sproutcore/frameworks/desktop/tests/panes/pane_page.js +41 -0
  1124. data/sproutcore/frameworks/desktop/tests/panes/panel/methods.js +10 -0
  1125. data/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +83 -0
  1126. data/sproutcore/frameworks/desktop/tests/panes/picker/methods.js +10 -0
  1127. data/sproutcore/frameworks/desktop/tests/panes/picker/ui.js +92 -0
  1128. data/sproutcore/frameworks/desktop/tests/panes/select_button/methods.js +194 -0
  1129. data/sproutcore/frameworks/desktop/tests/panes/select_button/ui.js +220 -0
  1130. data/sproutcore/frameworks/desktop/tests/panes/sheet/methods.js +10 -0
  1131. data/sproutcore/frameworks/desktop/tests/panes/sheet/ui.js +44 -0
  1132. data/sproutcore/frameworks/desktop/tests/views/button/methods.js +166 -0
  1133. data/sproutcore/frameworks/desktop/tests/views/button/ui.js +236 -0
  1134. data/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +126 -0
  1135. data/sproutcore/frameworks/desktop/tests/views/checkbox/ui.js +124 -0
  1136. data/sproutcore/frameworks/desktop/tests/views/collection/content.js +249 -0
  1137. data/sproutcore/frameworks/desktop/tests/views/collection/deleteSelection.js +82 -0
  1138. data/sproutcore/frameworks/desktop/tests/views/collection/deselect.js +215 -0
  1139. data/sproutcore/frameworks/desktop/tests/views/collection/displayProperties.js +31 -0
  1140. data/sproutcore/frameworks/desktop/tests/views/collection/itemViewForContentIndex.js +300 -0
  1141. data/sproutcore/frameworks/desktop/tests/views/collection/layerIdFor.js +65 -0
  1142. data/sproutcore/frameworks/desktop/tests/views/collection/length.js +88 -0
  1143. data/sproutcore/frameworks/desktop/tests/views/collection/mouse.js +240 -0
  1144. data/sproutcore/frameworks/desktop/tests/views/collection/nowShowing.js +121 -0
  1145. data/sproutcore/frameworks/desktop/tests/views/collection/reload.js +177 -0
  1146. data/sproutcore/frameworks/desktop/tests/views/collection/select.js +240 -0
  1147. data/sproutcore/frameworks/desktop/tests/views/collection/selectNextItem.js +205 -0
  1148. data/sproutcore/frameworks/desktop/tests/views/collection/selectPreviousItem.js +211 -0
  1149. data/sproutcore/frameworks/desktop/tests/views/collection/selection.js +141 -0
  1150. data/sproutcore/frameworks/desktop/tests/views/collection/ui_diagram.js +188 -0
  1151. data/sproutcore/frameworks/desktop/tests/views/date_field/methods.js +76 -0
  1152. data/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +456 -0
  1153. data/sproutcore/frameworks/desktop/tests/views/disclosure/methods.js +10 -0
  1154. data/sproutcore/frameworks/desktop/tests/views/disclosure/ui.js +104 -0
  1155. data/sproutcore/frameworks/desktop/tests/views/grid/methods.js +10 -0
  1156. data/sproutcore/frameworks/desktop/tests/views/grid/ui.js +10 -0
  1157. data/sproutcore/frameworks/desktop/tests/views/image_button/ui.js +25 -0
  1158. data/sproutcore/frameworks/desktop/tests/views/list/render.js +92 -0
  1159. data/sproutcore/frameworks/desktop/tests/views/list/rowDelegate.js +183 -0
  1160. data/sproutcore/frameworks/desktop/tests/views/list/rowHeightForContentIndex.js +133 -0
  1161. data/sproutcore/frameworks/desktop/tests/views/list/rowOffsetForContentIndex.js +131 -0
  1162. data/sproutcore/frameworks/desktop/tests/views/list/ui_alternatingrows.js +130 -0
  1163. data/sproutcore/frameworks/desktop/tests/views/list/ui_outline.js +56 -0
  1164. data/sproutcore/frameworks/desktop/tests/views/list/ui_row_heights.js +205 -0
  1165. data/sproutcore/frameworks/desktop/tests/views/list/ui_simple.js +127 -0
  1166. data/sproutcore/frameworks/desktop/tests/views/list_item.js +396 -0
  1167. data/sproutcore/frameworks/desktop/tests/views/menu_item/methods.js +10 -0
  1168. data/sproutcore/frameworks/desktop/tests/views/menu_item/ui.js +46 -0
  1169. data/sproutcore/frameworks/desktop/tests/views/progress/methods.js +128 -0
  1170. data/sproutcore/frameworks/desktop/tests/views/progress/ui.js +421 -0
  1171. data/sproutcore/frameworks/desktop/tests/views/radio/methods.js +119 -0
  1172. data/sproutcore/frameworks/desktop/tests/views/radio/ui.js +349 -0
  1173. data/sproutcore/frameworks/desktop/tests/views/scroll/methods.js +143 -0
  1174. data/sproutcore/frameworks/desktop/tests/views/scroll/ui.js +162 -0
  1175. data/sproutcore/frameworks/desktop/tests/views/scroller.js +118 -0
  1176. data/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +108 -0
  1177. data/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +457 -0
  1178. data/sproutcore/frameworks/desktop/tests/views/select/methods.js +144 -0
  1179. data/sproutcore/frameworks/desktop/tests/views/select/ui.js +224 -0
  1180. data/sproutcore/frameworks/desktop/tests/views/select_field/methods.js +163 -0
  1181. data/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +117 -0
  1182. data/sproutcore/frameworks/desktop/tests/views/separator.js +44 -0
  1183. data/sproutcore/frameworks/desktop/tests/views/source_list/methods.js +10 -0
  1184. data/sproutcore/frameworks/desktop/tests/views/source_list/ui.js +10 -0
  1185. data/sproutcore/frameworks/desktop/tests/views/split/methods.js +60 -0
  1186. data/sproutcore/frameworks/desktop/tests/views/split/ui.js +59 -0
  1187. data/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +238 -0
  1188. data/sproutcore/frameworks/desktop/tests/views/static_content.js +46 -0
  1189. data/sproutcore/frameworks/desktop/tests/views/tab/methods.js +54 -0
  1190. data/sproutcore/frameworks/desktop/tests/views/tab/ui.js +92 -0
  1191. data/sproutcore/frameworks/desktop/tests/views/toolbar/method.js +33 -0
  1192. data/sproutcore/frameworks/desktop/tests/views/toolbar/ui.js +29 -0
  1193. data/sproutcore/frameworks/desktop/tests/views/web/methods.js +10 -0
  1194. data/sproutcore/frameworks/desktop/tests/views/web/ui.js +110 -0
  1195. data/sproutcore/frameworks/desktop/tests/views/well/ui.js +54 -0
  1196. data/sproutcore/frameworks/desktop/views/button.js +564 -0
  1197. data/sproutcore/frameworks/desktop/views/checkbox.js +110 -0
  1198. data/sproutcore/frameworks/desktop/views/collection.js +3090 -0
  1199. data/sproutcore/frameworks/desktop/views/date_field.js +319 -0
  1200. data/sproutcore/frameworks/desktop/views/disclosure.js +68 -0
  1201. data/sproutcore/frameworks/desktop/views/file.js +112 -0
  1202. data/sproutcore/frameworks/desktop/views/grid.js +207 -0
  1203. data/sproutcore/frameworks/desktop/views/image_button.js +74 -0
  1204. data/sproutcore/frameworks/desktop/views/list.js +637 -0
  1205. data/sproutcore/frameworks/desktop/views/list_item.js +923 -0
  1206. data/sproutcore/frameworks/desktop/views/master_detail.js +257 -0
  1207. data/sproutcore/frameworks/desktop/views/menu_item.js +704 -0
  1208. data/sproutcore/frameworks/desktop/views/menu_scroll.js +615 -0
  1209. data/sproutcore/frameworks/desktop/views/navigation.js +237 -0
  1210. data/sproutcore/frameworks/desktop/views/navigation_bar.js +181 -0
  1211. data/sproutcore/frameworks/desktop/views/popup_button.js +299 -0
  1212. data/sproutcore/frameworks/desktop/views/progress.js +197 -0
  1213. data/sproutcore/frameworks/desktop/views/radio.js +347 -0
  1214. data/sproutcore/frameworks/desktop/views/scene.js +204 -0
  1215. data/sproutcore/frameworks/desktop/views/scroll.js +1824 -0
  1216. data/sproutcore/frameworks/desktop/views/scroller.js +917 -0
  1217. data/sproutcore/frameworks/desktop/views/segment.js +104 -0
  1218. data/sproutcore/frameworks/desktop/views/segmented.js +1002 -0
  1219. data/sproutcore/frameworks/desktop/views/select.js +809 -0
  1220. data/sproutcore/frameworks/desktop/views/select_field.js +344 -0
  1221. data/sproutcore/frameworks/desktop/views/separator.js +36 -0
  1222. data/sproutcore/frameworks/desktop/views/slider.js +291 -0
  1223. data/sproutcore/frameworks/desktop/views/source_list.js +49 -0
  1224. data/sproutcore/frameworks/desktop/views/source_list_group.js +169 -0
  1225. data/sproutcore/frameworks/desktop/views/split.js +891 -0
  1226. data/sproutcore/frameworks/desktop/views/split_divider.js +52 -0
  1227. data/sproutcore/frameworks/desktop/views/stacked.js +110 -0
  1228. data/sproutcore/frameworks/desktop/views/static_content.js +134 -0
  1229. data/sproutcore/frameworks/desktop/views/tab.js +186 -0
  1230. data/sproutcore/frameworks/desktop/views/thumb.js +53 -0
  1231. data/sproutcore/frameworks/desktop/views/toolbar.js +88 -0
  1232. data/sproutcore/frameworks/desktop/views/web.js +87 -0
  1233. data/sproutcore/frameworks/desktop/views/well.js +65 -0
  1234. data/sproutcore/frameworks/desktop/views/workspace.js +251 -0
  1235. data/sproutcore/frameworks/documentation/core.js +0 -0
  1236. data/sproutcore/frameworks/experimental/README.md +23 -0
  1237. data/sproutcore/frameworks/experimental/frameworks/device_motion/README.md +11 -0
  1238. data/sproutcore/frameworks/experimental/frameworks/device_motion/device.js +215 -0
  1239. data/sproutcore/frameworks/experimental/frameworks/device_motion/platform.js +67 -0
  1240. data/sproutcore/frameworks/experimental/frameworks/polymorphism/README.md +34 -0
  1241. data/sproutcore/frameworks/experimental/frameworks/polymorphism/models/polymorphic_single_attribute.js +183 -0
  1242. data/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +23 -0
  1243. data/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphic/single.js +124 -0
  1244. data/sproutcore/frameworks/forms/english.lproj/default_styles.css +5 -0
  1245. data/sproutcore/frameworks/forms/english.lproj/strings.js +15 -0
  1246. data/sproutcore/frameworks/forms/mixins/edit_mode.js +43 -0
  1247. data/sproutcore/frameworks/forms/mixins/emptiness.js +95 -0
  1248. data/sproutcore/frameworks/forms/renderer_delegates/form.js +22 -0
  1249. data/sproutcore/frameworks/forms/renderer_delegates/form_row.js +21 -0
  1250. data/sproutcore/frameworks/forms/tests/views/form.js +15 -0
  1251. data/sproutcore/frameworks/forms/tests/views/form_checkbox_field.js +15 -0
  1252. data/sproutcore/frameworks/forms/tests/views/form_field.js +15 -0
  1253. data/sproutcore/frameworks/forms/tests/views/form_label.js +15 -0
  1254. data/sproutcore/frameworks/forms/tests/views/form_radio_field.js +15 -0
  1255. data/sproutcore/frameworks/forms/tests/views/form_row.js +15 -0
  1256. data/sproutcore/frameworks/forms/tests/views/form_text_field.js +15 -0
  1257. data/sproutcore/frameworks/forms/views/form.js +282 -0
  1258. data/sproutcore/frameworks/forms/views/form_row.js +183 -0
  1259. data/sproutcore/frameworks/foundation/.greenhouseconf +35 -0
  1260. data/sproutcore/frameworks/foundation/TESTING +46 -0
  1261. data/sproutcore/frameworks/foundation/controllers/tree.js +127 -0
  1262. data/sproutcore/frameworks/foundation/core.js +0 -0
  1263. data/sproutcore/frameworks/foundation/debug/control_test_pane.js +191 -0
  1264. data/sproutcore/frameworks/foundation/english.lproj/benchmark.css +146 -0
  1265. data/sproutcore/frameworks/foundation/english.lproj/blank.gif +0 -0
  1266. data/sproutcore/frameworks/foundation/english.lproj/bootstrap.rhtml +67 -0
  1267. data/sproutcore/frameworks/foundation/english.lproj/button_view.css +40 -0
  1268. data/sproutcore/frameworks/foundation/english.lproj/debug/control-test-pane.css +9 -0
  1269. data/sproutcore/frameworks/foundation/english.lproj/images/favicon.ico +0 -0
  1270. data/sproutcore/frameworks/foundation/english.lproj/images/sproutcore-logo.png +0 -0
  1271. data/sproutcore/frameworks/foundation/english.lproj/images/sproutcore-startup-landscape.jpg +0 -0
  1272. data/sproutcore/frameworks/foundation/english.lproj/images/sproutcore-startup-landscape.png +0 -0
  1273. data/sproutcore/frameworks/foundation/english.lproj/images/sproutcore-startup-portrait.jpg +0 -0
  1274. data/sproutcore/frameworks/foundation/english.lproj/images/sproutcore-startup-portrait.png +0 -0
  1275. data/sproutcore/frameworks/foundation/english.lproj/images/sproutcore-startup.png +0 -0
  1276. data/sproutcore/frameworks/foundation/english.lproj/images/sproutcore.png +0 -0
  1277. data/sproutcore/frameworks/foundation/english.lproj/inline_editor.css +12 -0
  1278. data/sproutcore/frameworks/foundation/english.lproj/label.css +47 -0
  1279. data/sproutcore/frameworks/foundation/english.lproj/static_layout.css +5 -0
  1280. data/sproutcore/frameworks/foundation/english.lproj/text_field.css +146 -0
  1281. data/sproutcore/frameworks/foundation/fixtures/file_exists.json +1 -0
  1282. data/sproutcore/frameworks/foundation/fixtures/malformed.json +11 -0
  1283. data/sproutcore/frameworks/foundation/gestures/pinch.js +81 -0
  1284. data/sproutcore/frameworks/foundation/gestures/swipe.js +144 -0
  1285. data/sproutcore/frameworks/foundation/gestures/tap.js +113 -0
  1286. data/sproutcore/frameworks/foundation/license.js +28 -0
  1287. data/sproutcore/frameworks/foundation/mixins/auto_mixin.js +39 -0
  1288. data/sproutcore/frameworks/foundation/mixins/auto_resize.js +233 -0
  1289. data/sproutcore/frameworks/foundation/mixins/button.js +360 -0
  1290. data/sproutcore/frameworks/foundation/mixins/collection_content.js +178 -0
  1291. data/sproutcore/frameworks/foundation/mixins/content_display.js +114 -0
  1292. data/sproutcore/frameworks/foundation/mixins/control.js +422 -0
  1293. data/sproutcore/frameworks/foundation/mixins/editable.js +158 -0
  1294. data/sproutcore/frameworks/foundation/mixins/flowed_layout.js +628 -0
  1295. data/sproutcore/frameworks/foundation/mixins/gestureable.js +214 -0
  1296. data/sproutcore/frameworks/foundation/mixins/inline_editable.js +89 -0
  1297. data/sproutcore/frameworks/foundation/mixins/inline_editor_delegate.js +139 -0
  1298. data/sproutcore/frameworks/foundation/mixins/inline_text_field.js +589 -0
  1299. data/sproutcore/frameworks/foundation/mixins/inner_frame.js +184 -0
  1300. data/sproutcore/frameworks/foundation/mixins/static_layout.js +77 -0
  1301. data/sproutcore/frameworks/foundation/mixins/string.js +391 -0
  1302. data/sproutcore/frameworks/foundation/mixins/tree_item_content.js +160 -0
  1303. data/sproutcore/frameworks/foundation/mixins/validatable.js +189 -0
  1304. data/sproutcore/frameworks/foundation/private/tree_item_observer.js +914 -0
  1305. data/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +110 -0
  1306. data/sproutcore/frameworks/foundation/render_delegates/container.js +18 -0
  1307. data/sproutcore/frameworks/foundation/render_delegates/image.js +97 -0
  1308. data/sproutcore/frameworks/foundation/render_delegates/label.js +139 -0
  1309. data/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +17 -0
  1310. data/sproutcore/frameworks/foundation/system/benchmark.js +718 -0
  1311. data/sproutcore/frameworks/foundation/system/chance.js +64 -0
  1312. data/sproutcore/frameworks/foundation/system/cookie.js +171 -0
  1313. data/sproutcore/frameworks/foundation/system/core_query.js +56 -0
  1314. data/sproutcore/frameworks/foundation/system/exception_handler.js +88 -0
  1315. data/sproutcore/frameworks/foundation/system/gesture.js +363 -0
  1316. data/sproutcore/frameworks/foundation/system/image_queue.js +433 -0
  1317. data/sproutcore/frameworks/foundation/system/math.js +57 -0
  1318. data/sproutcore/frameworks/foundation/system/module.js +583 -0
  1319. data/sproutcore/frameworks/foundation/system/request.js +596 -0
  1320. data/sproutcore/frameworks/foundation/system/response.js +550 -0
  1321. data/sproutcore/frameworks/foundation/system/routes.js +519 -0
  1322. data/sproutcore/frameworks/foundation/system/staticqueue.js +53 -0
  1323. data/sproutcore/frameworks/foundation/system/task_queue.js +153 -0
  1324. data/sproutcore/frameworks/foundation/system/text_selection.js +103 -0
  1325. data/sproutcore/frameworks/foundation/system/time.js +473 -0
  1326. data/sproutcore/frameworks/foundation/system/user_defaults.js +392 -0
  1327. data/sproutcore/frameworks/foundation/system/utils/colors.js +80 -0
  1328. data/sproutcore/frameworks/foundation/system/utils/misc.js +137 -0
  1329. data/sproutcore/frameworks/foundation/system/utils/range.js +64 -0
  1330. data/sproutcore/frameworks/foundation/system/utils/string_measurement.js +247 -0
  1331. data/sproutcore/frameworks/foundation/tasks/preload_bundle.js +41 -0
  1332. data/sproutcore/frameworks/foundation/tasks/task.js +17 -0
  1333. data/sproutcore/frameworks/foundation/tests/controllers/tree/outline_case.js +108 -0
  1334. data/sproutcore/frameworks/foundation/tests/controllers/tree/selection_support.js +340 -0
  1335. data/sproutcore/frameworks/foundation/tests/debug/control_test_pane/methods.js +10 -0
  1336. data/sproutcore/frameworks/foundation/tests/debug/control_test_pane/ui.js +113 -0
  1337. data/sproutcore/frameworks/foundation/tests/integration/creating_views.js +118 -0
  1338. data/sproutcore/frameworks/foundation/tests/mixins/button/content.js +195 -0
  1339. data/sproutcore/frameworks/foundation/tests/mixins/button/displayProperties.js +89 -0
  1340. data/sproutcore/frameworks/foundation/tests/mixins/button/keyEquivalents.js +57 -0
  1341. data/sproutcore/frameworks/foundation/tests/mixins/button/ui.js +69 -0
  1342. data/sproutcore/frameworks/foundation/tests/mixins/content_display.js +51 -0
  1343. data/sproutcore/frameworks/foundation/tests/mixins/control/content.js +168 -0
  1344. data/sproutcore/frameworks/foundation/tests/mixins/control/displayProperties.js +89 -0
  1345. data/sproutcore/frameworks/foundation/tests/mixins/editable/ui.js +44 -0
  1346. data/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/api.js +52 -0
  1347. data/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/beginEditing.js +238 -0
  1348. data/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/ui.js +64 -0
  1349. data/sproutcore/frameworks/foundation/tests/mixins/staticLayout.js +144 -0
  1350. data/sproutcore/frameworks/foundation/tests/mixins/string.js +28 -0
  1351. data/sproutcore/frameworks/foundation/tests/mixins/validatable/ui.js +74 -0
  1352. data/sproutcore/frameworks/foundation/tests/private/tree_item_observer/flat_case.js +325 -0
  1353. data/sproutcore/frameworks/foundation/tests/private/tree_item_observer/group_case.js +718 -0
  1354. data/sproutcore/frameworks/foundation/tests/private/tree_item_observer/outline_case.js +484 -0
  1355. data/sproutcore/frameworks/foundation/tests/system/cookie.js +179 -0
  1356. data/sproutcore/frameworks/foundation/tests/system/core_query/setClass.js +59 -0
  1357. data/sproutcore/frameworks/foundation/tests/system/math.js +39 -0
  1358. data/sproutcore/frameworks/foundation/tests/system/request.js +273 -0
  1359. data/sproutcore/frameworks/foundation/tests/system/routes.js +356 -0
  1360. data/sproutcore/frameworks/foundation/tests/system/task_queue.js +43 -0
  1361. data/sproutcore/frameworks/foundation/tests/system/user_defaults.js +24 -0
  1362. data/sproutcore/frameworks/foundation/tests/system/utils/pointInElement.js +235 -0
  1363. data/sproutcore/frameworks/foundation/tests/system/utils/range.js +62 -0
  1364. data/sproutcore/frameworks/foundation/tests/validators/credit_card.js +35 -0
  1365. data/sproutcore/frameworks/foundation/tests/validators/date.js +26 -0
  1366. data/sproutcore/frameworks/foundation/tests/validators/not_empty.js +56 -0
  1367. data/sproutcore/frameworks/foundation/tests/validators/number.js +47 -0
  1368. data/sproutcore/frameworks/foundation/tests/validators/password.js +13 -0
  1369. data/sproutcore/frameworks/foundation/tests/validators/validator.js +20 -0
  1370. data/sproutcore/frameworks/foundation/tests/views/container/methods.js +18 -0
  1371. data/sproutcore/frameworks/foundation/tests/views/container/ui.js +145 -0
  1372. data/sproutcore/frameworks/foundation/tests/views/image/ui.js +492 -0
  1373. data/sproutcore/frameworks/foundation/tests/views/label/ui.js +179 -0
  1374. data/sproutcore/frameworks/foundation/tests/views/text_field/methods.js +87 -0
  1375. data/sproutcore/frameworks/foundation/tests/views/text_field/nextValidKeyView.js +110 -0
  1376. data/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +577 -0
  1377. data/sproutcore/frameworks/foundation/validators/credit_card.js +125 -0
  1378. data/sproutcore/frameworks/foundation/validators/date.js +52 -0
  1379. data/sproutcore/frameworks/foundation/validators/date_time.js +48 -0
  1380. data/sproutcore/frameworks/foundation/validators/email.js +45 -0
  1381. data/sproutcore/frameworks/foundation/validators/not_empty.js +37 -0
  1382. data/sproutcore/frameworks/foundation/validators/number.js +99 -0
  1383. data/sproutcore/frameworks/foundation/validators/password.js +86 -0
  1384. data/sproutcore/frameworks/foundation/validators/positive_integer.js +84 -0
  1385. data/sproutcore/frameworks/foundation/validators/validator.js +326 -0
  1386. data/sproutcore/frameworks/foundation/views/container.js +140 -0
  1387. data/sproutcore/frameworks/foundation/views/field.js +337 -0
  1388. data/sproutcore/frameworks/foundation/views/image.js +381 -0
  1389. data/sproutcore/frameworks/foundation/views/label.js +219 -0
  1390. data/sproutcore/frameworks/foundation/views/text_field.js +1073 -0
  1391. data/sproutcore/frameworks/handlebars/extensions.js +44 -0
  1392. data/sproutcore/frameworks/handlebars/extensions/bind.js +156 -0
  1393. data/sproutcore/frameworks/handlebars/extensions/collection.js +75 -0
  1394. data/sproutcore/frameworks/handlebars/extensions/localization.js +5 -0
  1395. data/sproutcore/frameworks/handlebars/extensions/view.js +115 -0
  1396. data/sproutcore/frameworks/handlebars/handlebars.js +1401 -0
  1397. data/sproutcore/frameworks/jquery/jquery-buffer.js +376 -0
  1398. data/sproutcore/frameworks/jquery/jquery-buffered.js +205 -0
  1399. data/sproutcore/frameworks/jquery/jquery-sc.js +7 -0
  1400. data/sproutcore/frameworks/jquery/jquery.js +7179 -0
  1401. data/sproutcore/frameworks/media/.greenhouseconf +29 -0
  1402. data/sproutcore/frameworks/media/resources/controls.png +0 -0
  1403. data/sproutcore/frameworks/media/resources/playeras3.fla +0 -0
  1404. data/sproutcore/frameworks/media/resources/video.css +124 -0
  1405. data/sproutcore/frameworks/media/resources/videoCanvas.swf +0 -0
  1406. data/sproutcore/frameworks/media/views/audio.js +741 -0
  1407. data/sproutcore/frameworks/media/views/controls.js +88 -0
  1408. data/sproutcore/frameworks/media/views/media_slider.js +243 -0
  1409. data/sproutcore/frameworks/media/views/mini_controls.js +63 -0
  1410. data/sproutcore/frameworks/media/views/simple_controls.js +54 -0
  1411. data/sproutcore/frameworks/media/views/video.js +832 -0
  1412. data/sproutcore/frameworks/mini/license.js +29 -0
  1413. data/sproutcore/frameworks/runtime/README +12 -0
  1414. data/sproutcore/frameworks/runtime/core.js +1102 -0
  1415. data/sproutcore/frameworks/runtime/debug/test_suites/array.js +14 -0
  1416. data/sproutcore/frameworks/runtime/debug/test_suites/array/base.js +397 -0
  1417. data/sproutcore/frameworks/runtime/debug/test_suites/array/indexOf.js +33 -0
  1418. data/sproutcore/frameworks/runtime/debug/test_suites/array/insertAt.js +121 -0
  1419. data/sproutcore/frameworks/runtime/debug/test_suites/array/objectAt.js +34 -0
  1420. data/sproutcore/frameworks/runtime/debug/test_suites/array/popObject.js +50 -0
  1421. data/sproutcore/frameworks/runtime/debug/test_suites/array/pushObject.js +46 -0
  1422. data/sproutcore/frameworks/runtime/debug/test_suites/array/rangeObserver.js +371 -0
  1423. data/sproutcore/frameworks/runtime/debug/test_suites/array/removeAt.js +100 -0
  1424. data/sproutcore/frameworks/runtime/debug/test_suites/array/removeObject.js +49 -0
  1425. data/sproutcore/frameworks/runtime/debug/test_suites/array/replace.js +94 -0
  1426. data/sproutcore/frameworks/runtime/debug/test_suites/array/shiftObject.js +50 -0
  1427. data/sproutcore/frameworks/runtime/debug/test_suites/array/unshiftObject.js +47 -0
  1428. data/sproutcore/frameworks/runtime/license.js +29 -0
  1429. data/sproutcore/frameworks/runtime/mixins/array.js +658 -0
  1430. data/sproutcore/frameworks/runtime/mixins/comparable.js +45 -0
  1431. data/sproutcore/frameworks/runtime/mixins/copyable.js +72 -0
  1432. data/sproutcore/frameworks/runtime/mixins/enumerable.js +1426 -0
  1433. data/sproutcore/frameworks/runtime/mixins/freezable.js +110 -0
  1434. data/sproutcore/frameworks/runtime/mixins/observable.js +1408 -0
  1435. data/sproutcore/frameworks/runtime/private/chain_observer.js +178 -0
  1436. data/sproutcore/frameworks/runtime/private/observer_queue.js +178 -0
  1437. data/sproutcore/frameworks/runtime/private/observer_set.js +123 -0
  1438. data/sproutcore/frameworks/runtime/system/binding.js +1000 -0
  1439. data/sproutcore/frameworks/runtime/system/enumerator.js +107 -0
  1440. data/sproutcore/frameworks/runtime/system/error.js +157 -0
  1441. data/sproutcore/frameworks/runtime/system/index_set.js +1199 -0
  1442. data/sproutcore/frameworks/runtime/system/logger.js +1582 -0
  1443. data/sproutcore/frameworks/runtime/system/object.js +947 -0
  1444. data/sproutcore/frameworks/runtime/system/range_observer.js +270 -0
  1445. data/sproutcore/frameworks/runtime/system/run_loop.js +308 -0
  1446. data/sproutcore/frameworks/runtime/system/set.js +536 -0
  1447. data/sproutcore/frameworks/runtime/tests/core/IsEqual.js +30 -0
  1448. data/sproutcore/frameworks/runtime/tests/core/beget.js +23 -0
  1449. data/sproutcore/frameworks/runtime/tests/core/clone.js +108 -0
  1450. data/sproutcore/frameworks/runtime/tests/core/compare.js +44 -0
  1451. data/sproutcore/frameworks/runtime/tests/core/console.js +16 -0
  1452. data/sproutcore/frameworks/runtime/tests/core/guidFor.js +109 -0
  1453. data/sproutcore/frameworks/runtime/tests/core/inspect.js +27 -0
  1454. data/sproutcore/frameworks/runtime/tests/core/itemType.js +71 -0
  1455. data/sproutcore/frameworks/runtime/tests/core/keys.js +20 -0
  1456. data/sproutcore/frameworks/runtime/tests/core/makeArray.js +44 -0
  1457. data/sproutcore/frameworks/runtime/tests/core/objectForPropertyPath.js +19 -0
  1458. data/sproutcore/frameworks/runtime/tests/core/tupleForPropertyPath.js +37 -0
  1459. data/sproutcore/frameworks/runtime/tests/mixins/array.js +59 -0
  1460. data/sproutcore/frameworks/runtime/tests/mixins/comparable.js +44 -0
  1461. data/sproutcore/frameworks/runtime/tests/mixins/enumerable.js +658 -0
  1462. data/sproutcore/frameworks/runtime/tests/mixins/observable/chained.js +37 -0
  1463. data/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +733 -0
  1464. data/sproutcore/frameworks/runtime/tests/mixins/observable/propertyChanges.js +155 -0
  1465. data/sproutcore/frameworks/runtime/tests/mixins/observable/registerDependentKeys.js +79 -0
  1466. data/sproutcore/frameworks/runtime/tests/mixins/propertyChanges.js +81 -0
  1467. data/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js +55 -0
  1468. data/sproutcore/frameworks/runtime/tests/system/binding.js +395 -0
  1469. data/sproutcore/frameworks/runtime/tests/system/error.js +53 -0
  1470. data/sproutcore/frameworks/runtime/tests/system/index_set/add.js +212 -0
  1471. data/sproutcore/frameworks/runtime/tests/system/index_set/addEach.js +49 -0
  1472. data/sproutcore/frameworks/runtime/tests/system/index_set/clone.js +43 -0
  1473. data/sproutcore/frameworks/runtime/tests/system/index_set/contains.js +74 -0
  1474. data/sproutcore/frameworks/runtime/tests/system/index_set/create.js +42 -0
  1475. data/sproutcore/frameworks/runtime/tests/system/index_set/indexAfter.js +38 -0
  1476. data/sproutcore/frameworks/runtime/tests/system/index_set/indexBefore.js +38 -0
  1477. data/sproutcore/frameworks/runtime/tests/system/index_set/intersects.js +74 -0
  1478. data/sproutcore/frameworks/runtime/tests/system/index_set/max.js +40 -0
  1479. data/sproutcore/frameworks/runtime/tests/system/index_set/min.js +50 -0
  1480. data/sproutcore/frameworks/runtime/tests/system/index_set/rangeStartForIndex.js +36 -0
  1481. data/sproutcore/frameworks/runtime/tests/system/index_set/remove.js +189 -0
  1482. data/sproutcore/frameworks/runtime/tests/system/index_set/removeEach.js +49 -0
  1483. data/sproutcore/frameworks/runtime/tests/system/index_set/without.js +89 -0
  1484. data/sproutcore/frameworks/runtime/tests/system/logger.js +260 -0
  1485. data/sproutcore/frameworks/runtime/tests/system/object/base.js +195 -0
  1486. data/sproutcore/frameworks/runtime/tests/system/object/bindings.js +374 -0
  1487. data/sproutcore/frameworks/runtime/tests/system/object/concatenated_properties.js +71 -0
  1488. data/sproutcore/frameworks/runtime/tests/system/object/enhance.js +177 -0
  1489. data/sproutcore/frameworks/runtime/tests/system/observer_set.js +50 -0
  1490. data/sproutcore/frameworks/runtime/tests/system/range_observer/create.js +59 -0
  1491. data/sproutcore/frameworks/runtime/tests/system/range_observer/destroy.js +75 -0
  1492. data/sproutcore/frameworks/runtime/tests/system/range_observer/objectPropertyDidChange.js +117 -0
  1493. data/sproutcore/frameworks/runtime/tests/system/range_observer/rangeDidChange.js +110 -0
  1494. data/sproutcore/frameworks/runtime/tests/system/range_observer/update.js +65 -0
  1495. data/sproutcore/frameworks/runtime/tests/system/run_loop.js +120 -0
  1496. data/sproutcore/frameworks/runtime/tests/system/set.js +318 -0
  1497. data/sproutcore/frameworks/statechart/core.js +5 -0
  1498. data/sproutcore/frameworks/statechart/debug/monitor.js +136 -0
  1499. data/sproutcore/frameworks/statechart/system/state.js +713 -0
  1500. data/sproutcore/frameworks/statechart/system/statechart.js +951 -0
  1501. data/sproutcore/frameworks/statechart/tests/async.js +94 -0
  1502. data/sproutcore/frameworks/statechart/tests/event_handling/advanced_event_handling.js +310 -0
  1503. data/sproutcore/frameworks/statechart/tests/namespace/access_substates.js +252 -0
  1504. data/sproutcore/frameworks/statechart/tests/state/is_current_state.js +64 -0
  1505. data/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_history_state.js +88 -0
  1506. data/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_state_advanced.js +234 -0
  1507. data/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_state_async.js +123 -0
  1508. data/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_state_basic.js +139 -0
  1509. data/sproutcore/frameworks/statechart/tests/with_concurrent_states/goto_state_intermediate.js +119 -0
  1510. data/sproutcore/frameworks/statechart/tests/with_concurrent_states/send_event.js +183 -0
  1511. data/sproutcore/frameworks/statechart/tests/without_concurrent_states/default_responder.js +90 -0
  1512. data/sproutcore/frameworks/statechart/tests/without_concurrent_states/goto_history_state.js +200 -0
  1513. data/sproutcore/frameworks/statechart/tests/without_concurrent_states/goto_state.js +256 -0
  1514. data/sproutcore/frameworks/statechart/tests/without_concurrent_states/goto_state_async.js +187 -0
  1515. data/sproutcore/frameworks/statechart/tests/without_concurrent_states/send_event.js +122 -0
  1516. data/sproutcore/frameworks/statechart/tests/without_concurrent_states/state_plugin.js +99 -0
  1517. data/sproutcore/frameworks/statechart/tests/without_concurrent_states/transient.js +162 -0
  1518. data/sproutcore/frameworks/table/mixins/table_delegate.js +41 -0
  1519. data/sproutcore/frameworks/table/system/table_column.js +125 -0
  1520. data/sproutcore/frameworks/table/views/table.js +440 -0
  1521. data/sproutcore/frameworks/table/views/table_cell.js +63 -0
  1522. data/sproutcore/frameworks/table/views/table_head.js +158 -0
  1523. data/sproutcore/frameworks/table/views/table_header.js +214 -0
  1524. data/sproutcore/frameworks/table/views/table_row.js +155 -0
  1525. data/sproutcore/frameworks/testing/core.js +196 -0
  1526. data/sproutcore/frameworks/testing/english.lproj/additions.css +8 -0
  1527. data/sproutcore/frameworks/testing/english.lproj/runner.css +128 -0
  1528. data/sproutcore/frameworks/testing/english.lproj/testsuite.css +136 -0
  1529. data/sproutcore/frameworks/testing/extras.js +17 -0
  1530. data/sproutcore/frameworks/testing/jquery.js +3559 -0
  1531. data/sproutcore/frameworks/testing/qunit.js +827 -0
  1532. data/sproutcore/frameworks/testing/system/dump.js +205 -0
  1533. data/sproutcore/frameworks/testing/system/equiv.js +201 -0
  1534. data/sproutcore/frameworks/testing/system/plan.js +703 -0
  1535. data/sproutcore/frameworks/testing/system/runner.js +220 -0
  1536. data/sproutcore/frameworks/testing/system/suite.js +228 -0
  1537. data/sproutcore/frameworks/testing/utils.js +62 -0
  1538. data/sproutcore/lib/index.rhtml +164 -0
  1539. data/sproutcore/license.js +31 -0
  1540. data/sproutcore/themes/ace/designs/dark.png +0 -0
  1541. data/sproutcore/themes/ace/designs/dark.psd +0 -0
  1542. data/sproutcore/themes/ace/designs/light.png +0 -0
  1543. data/sproutcore/themes/ace/designs/light.psd +0 -0
  1544. data/sproutcore/themes/ace/designs/psds/button/ace/18px/active_button.psd +0 -0
  1545. data/sproutcore/themes/ace/designs/psds/button/ace/18px/normal_button.psd +0 -0
  1546. data/sproutcore/themes/ace/designs/psds/button/ace/18px/selected_active_button.psd +0 -0
  1547. data/sproutcore/themes/ace/designs/psds/button/ace/18px/selected_button.psd +0 -0
  1548. data/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button.psd +0 -0
  1549. data/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button_capsule.psd +0 -0
  1550. data/sproutcore/themes/ace/designs/psds/button/ace/24px/active_button_pointer.psd +0 -0
  1551. data/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button.psd +0 -0
  1552. data/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button_capsule.psd +0 -0
  1553. data/sproutcore/themes/ace/designs/psds/button/ace/24px/normal_button_pointer.psd +0 -0
  1554. data/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button.psd +0 -0
  1555. data/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button_capsule.psd +0 -0
  1556. data/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_active_button_pointer.psd +0 -0
  1557. data/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button.psd +0 -0
  1558. data/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button_capsule.psd +0 -0
  1559. data/sproutcore/themes/ace/designs/psds/button/ace/24px/selected_button_pointer.psd +0 -0
  1560. data/sproutcore/themes/ace/designs/psds/button/ace/30px/active_button.psd +0 -0
  1561. data/sproutcore/themes/ace/designs/psds/button/ace/30px/active_button_pointer.psd +0 -0
  1562. data/sproutcore/themes/ace/designs/psds/button/ace/30px/normal_button.psd +0 -0
  1563. data/sproutcore/themes/ace/designs/psds/button/ace/30px/normal_button_pointer.psd +0 -0
  1564. data/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_active_button.psd +0 -0
  1565. data/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_active_button_pointer.psd +0 -0
  1566. data/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_button.psd +0 -0
  1567. data/sproutcore/themes/ace/designs/psds/button/ace/30px/selected_button_pointer.psd +0 -0
  1568. data/sproutcore/themes/ace/designs/psds/button/ace/44px/active_button.psd +0 -0
  1569. data/sproutcore/themes/ace/designs/psds/button/ace/44px/normal_button.psd +0 -0
  1570. data/sproutcore/themes/ace/designs/psds/button/ace/44px/selected_active_button.psd +0 -0
  1571. data/sproutcore/themes/ace/designs/psds/button/ace/44px/selected_button.psd +0 -0
  1572. data/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button.psd +0 -0
  1573. data/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button_capsule.psd +0 -0
  1574. data/sproutcore/themes/ace/designs/psds/button/dark/24px/active_button_pointer.psd +0 -0
  1575. data/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button.psd +0 -0
  1576. data/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button_capsule.psd +0 -0
  1577. data/sproutcore/themes/ace/designs/psds/button/dark/24px/normal_button_pointer.psd +0 -0
  1578. data/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button.psd +0 -0
  1579. data/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button_capsule.psd +0 -0
  1580. data/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_active_button_pointer.psd +0 -0
  1581. data/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button.psd +0 -0
  1582. data/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button_capsule.psd +0 -0
  1583. data/sproutcore/themes/ace/designs/psds/button/dark/24px/selected_button_pointer.psd +0 -0
  1584. data/sproutcore/themes/ace/designs/psds/button/dark/30px/active_button.psd +0 -0
  1585. data/sproutcore/themes/ace/designs/psds/button/dark/30px/active_button_pointer.psd +0 -0
  1586. data/sproutcore/themes/ace/designs/psds/button/dark/30px/normal_button.psd +0 -0
  1587. data/sproutcore/themes/ace/designs/psds/button/dark/30px/normal_button_pointer.psd +0 -0
  1588. data/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_active_button.psd +0 -0
  1589. data/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_active_button_pointer.psd +0 -0
  1590. data/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_button.psd +0 -0
  1591. data/sproutcore/themes/ace/designs/psds/button/dark/30px/selected_button_pointer.psd +0 -0
  1592. data/sproutcore/themes/ace/designs/psds/button/popup/active_select.psd +0 -0
  1593. data/sproutcore/themes/ace/designs/psds/button/popup/normal_select.psd +0 -0
  1594. data/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked.psd +0 -0
  1595. data/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_checked_active.psd +0 -0
  1596. data/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed.psd +0 -0
  1597. data/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_mixed_active.psd +0 -0
  1598. data/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked.psd +0 -0
  1599. data/sproutcore/themes/ace/designs/psds/checkbox/ace/14px/checkbox_unchecked_active.psd +0 -0
  1600. data/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked.psd +0 -0
  1601. data/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_checked_active.psd +0 -0
  1602. data/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed.psd +0 -0
  1603. data/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_mixed_active.psd +0 -0
  1604. data/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked.psd +0 -0
  1605. data/sproutcore/themes/ace/designs/psds/checkbox/ace/16px/checkbox_unchecked_active.psd +0 -0
  1606. data/sproutcore/themes/ace/designs/psds/collection/source-list/selection.psd +0 -0
  1607. data/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_closed.psd +0 -0
  1608. data/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_closed_active.psd +0 -0
  1609. data/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_open.psd +0 -0
  1610. data/sproutcore/themes/ace/designs/psds/disclosure/ace/disclosure_open_active.psd +0 -0
  1611. data/sproutcore/themes/ace/designs/psds/menu/checkmark.psd +0 -0
  1612. data/sproutcore/themes/ace/designs/psds/menu/checkmark_active.psd +0 -0
  1613. data/sproutcore/themes/ace/designs/psds/menu/down.psd +0 -0
  1614. data/sproutcore/themes/ace/designs/psds/menu/menu.psd +0 -0
  1615. data/sproutcore/themes/ace/designs/psds/menu/menu_item.psd +0 -0
  1616. data/sproutcore/themes/ace/designs/psds/menu/up.psd +0 -0
  1617. data/sproutcore/themes/ace/designs/psds/panel/panel.psd +0 -0
  1618. data/sproutcore/themes/ace/designs/psds/panel/pointers.psd +0 -0
  1619. data/sproutcore/themes/ace/designs/psds/picker/popover/popover.psd +0 -0
  1620. data/sproutcore/themes/ace/designs/psds/picker/popover/popover_empty.psd +0 -0
  1621. data/sproutcore/themes/ace/designs/psds/picker/popover/popover_notoolbar.psd +0 -0
  1622. data/sproutcore/themes/ace/designs/psds/picker/popover/popover_pointers.psd +0 -0
  1623. data/sproutcore/themes/ace/designs/psds/picker/popover/popover_pointers_notoolbar.psd +0 -0
  1624. data/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_content.psd +0 -0
  1625. data/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_indeterminate_content.psd +0 -0
  1626. data/sproutcore/themes/ace/designs/psds/progress/ace/progress_view_track.psd +0 -0
  1627. data/sproutcore/themes/ace/designs/psds/radio/radio_active.psd +0 -0
  1628. data/sproutcore/themes/ace/designs/psds/radio/radio_mixed.psd +0 -0
  1629. data/sproutcore/themes/ace/designs/psds/radio/radio_mixed_active.psd +0 -0
  1630. data/sproutcore/themes/ace/designs/psds/radio/radio_selected.psd +0 -0
  1631. data/sproutcore/themes/ace/designs/psds/radio/radio_selected_active.psd +0 -0
  1632. data/sproutcore/themes/ace/designs/psds/radio/radio_unselected.psd +0 -0
  1633. data/sproutcore/themes/ace/designs/psds/scroller/horizontal/thumb.psd +0 -0
  1634. data/sproutcore/themes/ace/designs/psds/scroller/horizontal/track_and_arrows.psd +0 -0
  1635. data/sproutcore/themes/ace/designs/psds/scroller/horizontal/track_and_arrows_active.psd +0 -0
  1636. data/sproutcore/themes/ace/designs/psds/scroller/vertical/thumb.psd +0 -0
  1637. data/sproutcore/themes/ace/designs/psds/scroller/vertical/track_and_arrows.psd +0 -0
  1638. data/sproutcore/themes/ace/designs/psds/scroller/vertical/track_and_arrows_active.psd +0 -0
  1639. data/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_active.psd +0 -0
  1640. data/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_normal.psd +0 -0
  1641. data/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_selected.psd +0 -0
  1642. data/sproutcore/themes/ace/designs/psds/segmented/18px/segmented_selected_active.psd +0 -0
  1643. data/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_active.psd +0 -0
  1644. data/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_normal.psd +0 -0
  1645. data/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_selected.psd +0 -0
  1646. data/sproutcore/themes/ace/designs/psds/segmented/24px/segmented_selected_active.psd +0 -0
  1647. data/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_active.psd +0 -0
  1648. data/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_normal.psd +0 -0
  1649. data/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_selected.psd +0 -0
  1650. data/sproutcore/themes/ace/designs/psds/segmented/30px/segmented_selected_active.psd +0 -0
  1651. data/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_active.psd +0 -0
  1652. data/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_normal.psd +0 -0
  1653. data/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_selected.psd +0 -0
  1654. data/sproutcore/themes/ace/designs/psds/segmented/44px/segmented_selected_active.psd +0 -0
  1655. data/sproutcore/themes/ace/designs/psds/slider/ace/14px/knob.psd +0 -0
  1656. data/sproutcore/themes/ace/designs/psds/slider/ace/14px/knob_active.psd +0 -0
  1657. data/sproutcore/themes/ace/designs/psds/slider/ace/16px/knob.psd +0 -0
  1658. data/sproutcore/themes/ace/designs/psds/slider/ace/16px/knob_active.psd +0 -0
  1659. data/sproutcore/themes/ace/designs/psds/slider/ace/22px/knob.psd +0 -0
  1660. data/sproutcore/themes/ace/designs/psds/slider/ace/22px/knob_active.psd +0 -0
  1661. data/sproutcore/themes/ace/designs/psds/slider/ace/22px/track.psd +0 -0
  1662. data/sproutcore/themes/ace/designs/psds/slider/ace/track.psd +0 -0
  1663. data/sproutcore/themes/ace/designs/psds/toolbar/toolbar.psd +0 -0
  1664. data/sproutcore/themes/ace/designs/switch/switch.psd +0 -0
  1665. data/sproutcore/themes/ace/designs/switch/switch_handle.png +0 -0
  1666. data/sproutcore/themes/ace/designs/switch/switch_handle.psd +0 -0
  1667. data/sproutcore/themes/ace/designs/switch/switch_off.png +0 -0
  1668. data/sproutcore/themes/ace/designs/switch/switch_off.psd +0 -0
  1669. data/sproutcore/themes/ace/designs/switch/switch_on.png +0 -0
  1670. data/sproutcore/themes/ace/designs/switch/switch_on.psd +0 -0
  1671. data/sproutcore/themes/ace/resources/body.css +13 -0
  1672. data/sproutcore/themes/ace/resources/button/ace/18px/active_button.png +0 -0
  1673. data/sproutcore/themes/ace/resources/button/ace/18px/button.css +33 -0
  1674. data/sproutcore/themes/ace/resources/button/ace/18px/normal_button.png +0 -0
  1675. data/sproutcore/themes/ace/resources/button/ace/18px/selected_active_button.png +0 -0
  1676. data/sproutcore/themes/ace/resources/button/ace/18px/selected_button.png +0 -0
  1677. data/sproutcore/themes/ace/resources/button/ace/24px/active_button.png +0 -0
  1678. data/sproutcore/themes/ace/resources/button/ace/24px/active_button_capsule.png +0 -0
  1679. data/sproutcore/themes/ace/resources/button/ace/24px/active_button_pointer.png +0 -0
  1680. data/sproutcore/themes/ace/resources/button/ace/24px/button.css +98 -0
  1681. data/sproutcore/themes/ace/resources/button/ace/24px/normal_button.png +0 -0
  1682. data/sproutcore/themes/ace/resources/button/ace/24px/normal_button_capsule.png +0 -0
  1683. data/sproutcore/themes/ace/resources/button/ace/24px/normal_button_pointer.png +0 -0
  1684. data/sproutcore/themes/ace/resources/button/ace/24px/selected_active_button.png +0 -0
  1685. data/sproutcore/themes/ace/resources/button/ace/24px/selected_active_button_capsule.png +0 -0
  1686. data/sproutcore/themes/ace/resources/button/ace/24px/selected_active_button_pointer.png +0 -0
  1687. data/sproutcore/themes/ace/resources/button/ace/24px/selected_button.png +0 -0
  1688. data/sproutcore/themes/ace/resources/button/ace/24px/selected_button_capsule.png +0 -0
  1689. data/sproutcore/themes/ace/resources/button/ace/24px/selected_button_pointer.png +0 -0
  1690. data/sproutcore/themes/ace/resources/button/ace/30px/active_button.png +0 -0
  1691. data/sproutcore/themes/ace/resources/button/ace/30px/active_button_pointer.png +0 -0
  1692. data/sproutcore/themes/ace/resources/button/ace/30px/button.css +78 -0
  1693. data/sproutcore/themes/ace/resources/button/ace/30px/normal_button.png +0 -0
  1694. data/sproutcore/themes/ace/resources/button/ace/30px/normal_button_pointer.png +0 -0
  1695. data/sproutcore/themes/ace/resources/button/ace/30px/selected_active_button.png +0 -0
  1696. data/sproutcore/themes/ace/resources/button/ace/30px/selected_active_button_pointer.png +0 -0
  1697. data/sproutcore/themes/ace/resources/button/ace/30px/selected_button.png +0 -0
  1698. data/sproutcore/themes/ace/resources/button/ace/30px/selected_button_pointer.png +0 -0
  1699. data/sproutcore/themes/ace/resources/button/ace/44px/active_button.png +0 -0
  1700. data/sproutcore/themes/ace/resources/button/ace/44px/button.css +39 -0
  1701. data/sproutcore/themes/ace/resources/button/ace/44px/normal_button.png +0 -0
  1702. data/sproutcore/themes/ace/resources/button/ace/44px/selected_active_button.png +0 -0
  1703. data/sproutcore/themes/ace/resources/button/ace/44px/selected_button.png +0 -0
  1704. data/sproutcore/themes/ace/resources/button/ace/button.css +36 -0
  1705. data/sproutcore/themes/ace/resources/button/button.js +75 -0
  1706. data/sproutcore/themes/ace/resources/button/dark/24px/active_button.png +0 -0
  1707. data/sproutcore/themes/ace/resources/button/dark/24px/active_button_capsule.png +0 -0
  1708. data/sproutcore/themes/ace/resources/button/dark/24px/active_button_pointer.png +0 -0
  1709. data/sproutcore/themes/ace/resources/button/dark/24px/button.css +93 -0
  1710. data/sproutcore/themes/ace/resources/button/dark/24px/normal_button.png +0 -0
  1711. data/sproutcore/themes/ace/resources/button/dark/24px/normal_button_capsule.png +0 -0
  1712. data/sproutcore/themes/ace/resources/button/dark/24px/normal_button_pointer.png +0 -0
  1713. data/sproutcore/themes/ace/resources/button/dark/24px/selected_active_button.png +0 -0
  1714. data/sproutcore/themes/ace/resources/button/dark/24px/selected_active_button_capsule.png +0 -0
  1715. data/sproutcore/themes/ace/resources/button/dark/24px/selected_active_button_pointer.png +0 -0
  1716. data/sproutcore/themes/ace/resources/button/dark/24px/selected_button.png +0 -0
  1717. data/sproutcore/themes/ace/resources/button/dark/24px/selected_button_capsule.png +0 -0
  1718. data/sproutcore/themes/ace/resources/button/dark/24px/selected_button_pointer.png +0 -0
  1719. data/sproutcore/themes/ace/resources/button/dark/30px/active_button.png +0 -0
  1720. data/sproutcore/themes/ace/resources/button/dark/30px/active_button_pointer.png +0 -0
  1721. data/sproutcore/themes/ace/resources/button/dark/30px/button.css +72 -0
  1722. data/sproutcore/themes/ace/resources/button/dark/30px/normal_button.png +0 -0
  1723. data/sproutcore/themes/ace/resources/button/dark/30px/normal_button_pointer.png +0 -0
  1724. data/sproutcore/themes/ace/resources/button/dark/30px/selected_active_button.png +0 -0
  1725. data/sproutcore/themes/ace/resources/button/dark/30px/selected_active_button_pointer.png +0 -0
  1726. data/sproutcore/themes/ace/resources/button/dark/30px/selected_button.png +0 -0
  1727. data/sproutcore/themes/ace/resources/button/dark/30px/selected_button_pointer.png +0 -0
  1728. data/sproutcore/themes/ace/resources/button/dark/button.css +17 -0
  1729. data/sproutcore/themes/ace/resources/button/dark/button.js +3 -0
  1730. data/sproutcore/themes/ace/resources/button/popup/active_select.png +0 -0
  1731. data/sproutcore/themes/ace/resources/button/popup/normal_select.png +0 -0
  1732. data/sproutcore/themes/ace/resources/button/popup/select.css +20 -0
  1733. data/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox.css +40 -0
  1734. data/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_checked.png +0 -0
  1735. data/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_checked_active.png +0 -0
  1736. data/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_mixed.png +0 -0
  1737. data/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_mixed_active.png +0 -0
  1738. data/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_unchecked.png +0 -0
  1739. data/sproutcore/themes/ace/resources/checkbox/ace/14px/checkbox_unchecked_active.png +0 -0
  1740. data/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox.css +40 -0
  1741. data/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_checked.png +0 -0
  1742. data/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_checked_active.png +0 -0
  1743. data/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_mixed.png +0 -0
  1744. data/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_mixed_active.png +0 -0
  1745. data/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_unchecked.png +0 -0
  1746. data/sproutcore/themes/ace/resources/checkbox/ace/16px/checkbox_unchecked_active.png +0 -0
  1747. data/sproutcore/themes/ace/resources/checkbox/ace/checkbox.css +7 -0
  1748. data/sproutcore/themes/ace/resources/collection/normal/list.css +4 -0
  1749. data/sproutcore/themes/ace/resources/collection/normal/list_item.css +17 -0
  1750. data/sproutcore/themes/ace/resources/collection/source-list/selection.png +0 -0
  1751. data/sproutcore/themes/ace/resources/collection/source-list/source-list.js +3 -0
  1752. data/sproutcore/themes/ace/resources/collection/source-list/source_list_view.css +36 -0
  1753. data/sproutcore/themes/ace/resources/disclosure/ace/disclosure.css +24 -0
  1754. data/sproutcore/themes/ace/resources/disclosure/ace/disclosure_closed.png +0 -0
  1755. data/sproutcore/themes/ace/resources/disclosure/ace/disclosure_closed_active.png +0 -0
  1756. data/sproutcore/themes/ace/resources/disclosure/ace/disclosure_open.png +0 -0
  1757. data/sproutcore/themes/ace/resources/disclosure/ace/disclosure_open_active.png +0 -0
  1758. data/sproutcore/themes/ace/resources/imagebutton/ace/imagebutton.css +11 -0
  1759. data/sproutcore/themes/ace/resources/loading.css +50 -0
  1760. data/sproutcore/themes/ace/resources/master-detail/master-detail.css +27 -0
  1761. data/sproutcore/themes/ace/resources/menu/checkmark.png +0 -0
  1762. data/sproutcore/themes/ace/resources/menu/checkmark_active.png +0 -0
  1763. data/sproutcore/themes/ace/resources/menu/down.png +0 -0
  1764. data/sproutcore/themes/ace/resources/menu/menu.css +75 -0
  1765. data/sproutcore/themes/ace/resources/menu/menu.png +0 -0
  1766. data/sproutcore/themes/ace/resources/menu/menu_item.png +0 -0
  1767. data/sproutcore/themes/ace/resources/menu/up.png +0 -0
  1768. data/sproutcore/themes/ace/resources/pane/pane.css +3 -0
  1769. data/sproutcore/themes/ace/resources/panel/panel.css +13 -0
  1770. data/sproutcore/themes/ace/resources/panel/panel.js +20 -0
  1771. data/sproutcore/themes/ace/resources/panel/panel.png +0 -0
  1772. data/sproutcore/themes/ace/resources/picker/ace/panel.png +0 -0
  1773. data/sproutcore/themes/ace/resources/picker/ace/picker.css +41 -0
  1774. data/sproutcore/themes/ace/resources/picker/ace/picker.js +0 -0
  1775. data/sproutcore/themes/ace/resources/picker/ace/pointers.png +0 -0
  1776. data/sproutcore/themes/ace/resources/picker/popover/picker.js +32 -0
  1777. data/sproutcore/themes/ace/resources/picker/popover/popover.css +111 -0
  1778. data/sproutcore/themes/ace/resources/picker/popover/popover.js +12 -0
  1779. data/sproutcore/themes/ace/resources/picker/popover/popover.png +0 -0
  1780. data/sproutcore/themes/ace/resources/picker/popover/popover_empty.png +0 -0
  1781. data/sproutcore/themes/ace/resources/picker/popover/popover_notoolbar.png +0 -0
  1782. data/sproutcore/themes/ace/resources/picker/popover/popover_pointers.png +0 -0
  1783. data/sproutcore/themes/ace/resources/picker/popover/popover_pointers_notoolbar.png +0 -0
  1784. data/sproutcore/themes/ace/resources/picker/popover/workspace.js +28 -0
  1785. data/sproutcore/themes/ace/resources/progress/ace/progress.css +27 -0
  1786. data/sproutcore/themes/ace/resources/progress/ace/progress_view_content.png +0 -0
  1787. data/sproutcore/themes/ace/resources/progress/ace/progress_view_track.png +0 -0
  1788. data/sproutcore/themes/ace/resources/progress/progress.js +78 -0
  1789. data/sproutcore/themes/ace/resources/radio/radio.css +63 -0
  1790. data/sproutcore/themes/ace/resources/radio/radio_active.png +0 -0
  1791. data/sproutcore/themes/ace/resources/radio/radio_mixed.png +0 -0
  1792. data/sproutcore/themes/ace/resources/radio/radio_mixed_active.png +0 -0
  1793. data/sproutcore/themes/ace/resources/radio/radio_selected.png +0 -0
  1794. data/sproutcore/themes/ace/resources/radio/radio_selected_active.png +0 -0
  1795. data/sproutcore/themes/ace/resources/radio/radio_unselected.png +0 -0
  1796. data/sproutcore/themes/ace/resources/scroller/horizontal/horizontal.css +78 -0
  1797. data/sproutcore/themes/ace/resources/scroller/horizontal/horizontal_touch.css +91 -0
  1798. data/sproutcore/themes/ace/resources/scroller/horizontal/thumb.png +0 -0
  1799. data/sproutcore/themes/ace/resources/scroller/horizontal/track_and_arrows.png +0 -0
  1800. data/sproutcore/themes/ace/resources/scroller/horizontal/track_and_arrows_active.png +0 -0
  1801. data/sproutcore/themes/ace/resources/scroller/vertical/thumb.png +0 -0
  1802. data/sproutcore/themes/ace/resources/scroller/vertical/track_and_arrows.png +0 -0
  1803. data/sproutcore/themes/ace/resources/scroller/vertical/track_and_arrows_active.png +0 -0
  1804. data/sproutcore/themes/ace/resources/scroller/vertical/vertical.css +80 -0
  1805. data/sproutcore/themes/ace/resources/scroller/vertical/vertical_touch.css +92 -0
  1806. data/sproutcore/themes/ace/resources/segmented/18px/segmented.css +91 -0
  1807. data/sproutcore/themes/ace/resources/segmented/18px/segmented_active.png +0 -0
  1808. data/sproutcore/themes/ace/resources/segmented/18px/segmented_normal.png +0 -0
  1809. data/sproutcore/themes/ace/resources/segmented/18px/segmented_selected.png +0 -0
  1810. data/sproutcore/themes/ace/resources/segmented/18px/segmented_selected_active.png +0 -0
  1811. data/sproutcore/themes/ace/resources/segmented/24px/segmented.css +91 -0
  1812. data/sproutcore/themes/ace/resources/segmented/24px/segmented_active.png +0 -0
  1813. data/sproutcore/themes/ace/resources/segmented/24px/segmented_normal.png +0 -0
  1814. data/sproutcore/themes/ace/resources/segmented/24px/segmented_selected.png +0 -0
  1815. data/sproutcore/themes/ace/resources/segmented/24px/segmented_selected_active.png +0 -0
  1816. data/sproutcore/themes/ace/resources/segmented/30px/segmented.css +91 -0
  1817. data/sproutcore/themes/ace/resources/segmented/30px/segmented_active.png +0 -0
  1818. data/sproutcore/themes/ace/resources/segmented/30px/segmented_normal.png +0 -0
  1819. data/sproutcore/themes/ace/resources/segmented/30px/segmented_selected.png +0 -0
  1820. data/sproutcore/themes/ace/resources/segmented/30px/segmented_selected_active.png +0 -0
  1821. data/sproutcore/themes/ace/resources/segmented/44px/segmented.css +95 -0
  1822. data/sproutcore/themes/ace/resources/segmented/44px/segmented_active.png +0 -0
  1823. data/sproutcore/themes/ace/resources/segmented/44px/segmented_normal.png +0 -0
  1824. data/sproutcore/themes/ace/resources/segmented/44px/segmented_selected.png +0 -0
  1825. data/sproutcore/themes/ace/resources/segmented/44px/segmented_selected_active.png +0 -0
  1826. data/sproutcore/themes/ace/resources/segmented/segmented.css +83 -0
  1827. data/sproutcore/themes/ace/resources/slider/ace/14px/knob.png +0 -0
  1828. data/sproutcore/themes/ace/resources/slider/ace/14px/knob_active.png +0 -0
  1829. data/sproutcore/themes/ace/resources/slider/ace/14px/slider.css +27 -0
  1830. data/sproutcore/themes/ace/resources/slider/ace/16px/knob.png +0 -0
  1831. data/sproutcore/themes/ace/resources/slider/ace/16px/knob_active.png +0 -0
  1832. data/sproutcore/themes/ace/resources/slider/ace/16px/slider.css +27 -0
  1833. data/sproutcore/themes/ace/resources/slider/ace/22px/knob.png +0 -0
  1834. data/sproutcore/themes/ace/resources/slider/ace/22px/knob_active.png +0 -0
  1835. data/sproutcore/themes/ace/resources/slider/ace/22px/slider.css +27 -0
  1836. data/sproutcore/themes/ace/resources/slider/ace/22px/track.png +0 -0
  1837. data/sproutcore/themes/ace/resources/slider/ace/slider.css +7 -0
  1838. data/sproutcore/themes/ace/resources/slider/ace/slider.js +56 -0
  1839. data/sproutcore/themes/ace/resources/slider/ace/track.png +0 -0
  1840. data/sproutcore/themes/ace/resources/split/split.css +5 -0
  1841. data/sproutcore/themes/ace/resources/tab/tab.css +3 -0
  1842. data/sproutcore/themes/ace/resources/toolbar/toolbar.css +8 -0
  1843. data/sproutcore/themes/ace/resources/toolbar/toolbar.png +0 -0
  1844. data/sproutcore/themes/ace/resources/well/well.css +7 -0
  1845. data/sproutcore/themes/ace/resources/well/well.js +17 -0
  1846. data/sproutcore/themes/ace/theme.js +14 -0
  1847. data/sproutcore/themes/empty_theme/tests/mini_icons.rhtml +69 -0
  1848. data/sproutcore/themes/empty_theme/theme.js +16 -0
  1849. data/sproutcore/themes/iphone_theme/english.lproj/button.css +41 -0
  1850. data/sproutcore/themes/iphone_theme/english.lproj/core.css +8 -0
  1851. data/sproutcore/themes/iphone_theme/english.lproj/images/backButton.png +0 -0
  1852. data/sproutcore/themes/iphone_theme/english.lproj/images/blueButton.png +0 -0
  1853. data/sproutcore/themes/iphone_theme/english.lproj/images/cancel.png +0 -0
  1854. data/sproutcore/themes/iphone_theme/english.lproj/images/grayButton.png +0 -0
  1855. data/sproutcore/themes/iphone_theme/english.lproj/images/leftButton.png +0 -0
  1856. data/sproutcore/themes/iphone_theme/english.lproj/images/listArrow.png +0 -0
  1857. data/sproutcore/themes/iphone_theme/english.lproj/images/listArrowSel.png +0 -0
  1858. data/sproutcore/themes/iphone_theme/english.lproj/images/listGroup.png +0 -0
  1859. data/sproutcore/themes/iphone_theme/english.lproj/images/loading.gif +0 -0
  1860. data/sproutcore/themes/iphone_theme/english.lproj/images/pinstripes.png +0 -0
  1861. data/sproutcore/themes/iphone_theme/english.lproj/images/rightButton.png +0 -0
  1862. data/sproutcore/themes/iphone_theme/english.lproj/images/selection.png +0 -0
  1863. data/sproutcore/themes/iphone_theme/english.lproj/images/thumb.png +0 -0
  1864. data/sproutcore/themes/iphone_theme/english.lproj/images/toggle.png +0 -0
  1865. data/sproutcore/themes/iphone_theme/english.lproj/images/toggleOn.png +0 -0
  1866. data/sproutcore/themes/iphone_theme/english.lproj/images/toolButton.png +0 -0
  1867. data/sproutcore/themes/iphone_theme/english.lproj/images/toolbar.png +0 -0
  1868. data/sproutcore/themes/iphone_theme/english.lproj/images/whiteButton.png +0 -0
  1869. data/sproutcore/themes/iphone_theme/english.lproj/strings.js +15 -0
  1870. data/sproutcore/themes/standard_theme/Source/Panel.drawit/Data +0 -0
  1871. data/sproutcore/themes/standard_theme/Source/Panel.drawit/QuickLook/Preview.jpg +0 -0
  1872. data/sproutcore/themes/standard_theme/Source/Panel.drawit/QuickLook/Thumbnail.jpg +0 -0
  1873. data/sproutcore/themes/standard_theme/Source/SproutCore Theme Buttons.psd +0 -0
  1874. data/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/Data +0 -0
  1875. data/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/QuickLook/Preview.jpg +0 -0
  1876. data/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/QuickLook/Thumbnail.jpg +0 -0
  1877. data/sproutcore/themes/standard_theme/Source/icons/16/10.png +0 -0
  1878. data/sproutcore/themes/standard_theme/Source/icons/16/100.png +0 -0
  1879. data/sproutcore/themes/standard_theme/Source/icons/16/102.png +0 -0
  1880. data/sproutcore/themes/standard_theme/Source/icons/16/110.png +0 -0
  1881. data/sproutcore/themes/standard_theme/Source/icons/16/120.png +0 -0
  1882. data/sproutcore/themes/standard_theme/Source/icons/16/127.png +0 -0
  1883. data/sproutcore/themes/standard_theme/Source/icons/16/18.png +0 -0
  1884. data/sproutcore/themes/standard_theme/Source/icons/16/19.png +0 -0
  1885. data/sproutcore/themes/standard_theme/Source/icons/16/2.png +0 -0
  1886. data/sproutcore/themes/standard_theme/Source/icons/16/24.png +0 -0
  1887. data/sproutcore/themes/standard_theme/Source/icons/16/26.png +0 -0
  1888. data/sproutcore/themes/standard_theme/Source/icons/16/27.png +0 -0
  1889. data/sproutcore/themes/standard_theme/Source/icons/16/28.png +0 -0
  1890. data/sproutcore/themes/standard_theme/Source/icons/16/29.png +0 -0
  1891. data/sproutcore/themes/standard_theme/Source/icons/16/30.png +0 -0
  1892. data/sproutcore/themes/standard_theme/Source/icons/16/31.png +0 -0
  1893. data/sproutcore/themes/standard_theme/Source/icons/16/33.png +0 -0
  1894. data/sproutcore/themes/standard_theme/Source/icons/16/37.png +0 -0
  1895. data/sproutcore/themes/standard_theme/Source/icons/16/41.png +0 -0
  1896. data/sproutcore/themes/standard_theme/Source/icons/16/99.png +0 -0
  1897. data/sproutcore/themes/standard_theme/Source/icons/24/10.png +0 -0
  1898. data/sproutcore/themes/standard_theme/Source/icons/24/100.png +0 -0
  1899. data/sproutcore/themes/standard_theme/Source/icons/24/102.png +0 -0
  1900. data/sproutcore/themes/standard_theme/Source/icons/24/110.png +0 -0
  1901. data/sproutcore/themes/standard_theme/Source/icons/24/120.png +0 -0
  1902. data/sproutcore/themes/standard_theme/Source/icons/24/127.png +0 -0
  1903. data/sproutcore/themes/standard_theme/Source/icons/24/18.png +0 -0
  1904. data/sproutcore/themes/standard_theme/Source/icons/24/19.png +0 -0
  1905. data/sproutcore/themes/standard_theme/Source/icons/24/2.png +0 -0
  1906. data/sproutcore/themes/standard_theme/Source/icons/24/24.png +0 -0
  1907. data/sproutcore/themes/standard_theme/Source/icons/24/26.png +0 -0
  1908. data/sproutcore/themes/standard_theme/Source/icons/24/27.png +0 -0
  1909. data/sproutcore/themes/standard_theme/Source/icons/24/28.png +0 -0
  1910. data/sproutcore/themes/standard_theme/Source/icons/24/29.png +0 -0
  1911. data/sproutcore/themes/standard_theme/Source/icons/24/30.png +0 -0
  1912. data/sproutcore/themes/standard_theme/Source/icons/24/31.png +0 -0
  1913. data/sproutcore/themes/standard_theme/Source/icons/24/33.png +0 -0
  1914. data/sproutcore/themes/standard_theme/Source/icons/24/37.png +0 -0
  1915. data/sproutcore/themes/standard_theme/Source/icons/24/41.png +0 -0
  1916. data/sproutcore/themes/standard_theme/Source/icons/24/99.png +0 -0
  1917. data/sproutcore/themes/standard_theme/Source/icons/32/10.png +0 -0
  1918. data/sproutcore/themes/standard_theme/Source/icons/32/100.png +0 -0
  1919. data/sproutcore/themes/standard_theme/Source/icons/32/102.png +0 -0
  1920. data/sproutcore/themes/standard_theme/Source/icons/32/110.png +0 -0
  1921. data/sproutcore/themes/standard_theme/Source/icons/32/120.png +0 -0
  1922. data/sproutcore/themes/standard_theme/Source/icons/32/127.png +0 -0
  1923. data/sproutcore/themes/standard_theme/Source/icons/32/18.png +0 -0
  1924. data/sproutcore/themes/standard_theme/Source/icons/32/19.png +0 -0
  1925. data/sproutcore/themes/standard_theme/Source/icons/32/2.png +0 -0
  1926. data/sproutcore/themes/standard_theme/Source/icons/32/24.png +0 -0
  1927. data/sproutcore/themes/standard_theme/Source/icons/32/26.png +0 -0
  1928. data/sproutcore/themes/standard_theme/Source/icons/32/27.png +0 -0
  1929. data/sproutcore/themes/standard_theme/Source/icons/32/28.png +0 -0
  1930. data/sproutcore/themes/standard_theme/Source/icons/32/29.png +0 -0
  1931. data/sproutcore/themes/standard_theme/Source/icons/32/30.png +0 -0
  1932. data/sproutcore/themes/standard_theme/Source/icons/32/31.png +0 -0
  1933. data/sproutcore/themes/standard_theme/Source/icons/32/33.png +0 -0
  1934. data/sproutcore/themes/standard_theme/Source/icons/32/37.png +0 -0
  1935. data/sproutcore/themes/standard_theme/Source/icons/32/41.png +0 -0
  1936. data/sproutcore/themes/standard_theme/Source/icons/32/99.png +0 -0
  1937. data/sproutcore/themes/standard_theme/Source/icons/48/10.png +0 -0
  1938. data/sproutcore/themes/standard_theme/Source/icons/48/18.png +0 -0
  1939. data/sproutcore/themes/standard_theme/Source/icons/48/19.png +0 -0
  1940. data/sproutcore/themes/standard_theme/Source/icons/48/2.png +0 -0
  1941. data/sproutcore/themes/standard_theme/Source/panel-sprite-x.drawit/Data +0 -0
  1942. data/sproutcore/themes/standard_theme/Source/panel-sprite-x.drawit/QuickLook/Preview.jpg +0 -0
  1943. data/sproutcore/themes/standard_theme/Source/panel-sprite-x.drawit/QuickLook/Thumbnail.jpg +0 -0
  1944. data/sproutcore/themes/standard_theme/Source/panel-sprite-y.drawit/Data +0 -0
  1945. data/sproutcore/themes/standard_theme/Source/panel-sprite-y.drawit/QuickLook/Preview.jpg +0 -0
  1946. data/sproutcore/themes/standard_theme/Source/panel-sprite-y.drawit/QuickLook/Thumbnail.jpg +0 -0
  1947. data/sproutcore/themes/standard_theme/Source/sc-theme-repeat-x-2.psd +0 -0
  1948. data/sproutcore/themes/standard_theme/Source/sc-theme-repeat-x.psd +0 -0
  1949. data/sproutcore/themes/standard_theme/Source/sc-theme-sprite.psd +0 -0
  1950. data/sproutcore/themes/standard_theme/Source/sc-theme-ysprite.psd +0 -0
  1951. data/sproutcore/themes/standard_theme/Source/shared-icons.psd +0 -0
  1952. data/sproutcore/themes/standard_theme/Source/sproutcore-logo.psd +0 -0
  1953. data/sproutcore/themes/standard_theme/Source/sticky-note.psd +0 -0
  1954. data/sproutcore/themes/standard_theme/english.lproj/button.css +399 -0
  1955. data/sproutcore/themes/standard_theme/english.lproj/checkbox.css +78 -0
  1956. data/sproutcore/themes/standard_theme/english.lproj/collection.css +135 -0
  1957. data/sproutcore/themes/standard_theme/english.lproj/core.css +76 -0
  1958. data/sproutcore/themes/standard_theme/english.lproj/disclosure.css +57 -0
  1959. data/sproutcore/themes/standard_theme/english.lproj/images/icons/mini_222222.png +0 -0
  1960. data/sproutcore/themes/standard_theme/english.lproj/images/icons/mini_454545.png +0 -0
  1961. data/sproutcore/themes/standard_theme/english.lproj/images/icons/mini_888888.png +0 -0
  1962. data/sproutcore/themes/standard_theme/english.lproj/images/icons/mini_ffffff.png +0 -0
  1963. data/sproutcore/themes/standard_theme/english.lproj/images/panels/sprite-x.png +0 -0
  1964. data/sproutcore/themes/standard_theme/english.lproj/images/panels/sprite-y.png +0 -0
  1965. data/sproutcore/themes/standard_theme/english.lproj/images/sc-scroller-repeat-x.png +0 -0
  1966. data/sproutcore/themes/standard_theme/english.lproj/images/sc-scroller-repeat-y.png +0 -0
  1967. data/sproutcore/themes/standard_theme/english.lproj/images/sc-scroller-sprite.png +0 -0
  1968. data/sproutcore/themes/standard_theme/english.lproj/images/sc-theme-repeat-x.png +0 -0
  1969. data/sproutcore/themes/standard_theme/english.lproj/images/sc-theme-ysprite.png +0 -0
  1970. data/sproutcore/themes/standard_theme/english.lproj/images/sc-toolbar-view.png +0 -0
  1971. data/sproutcore/themes/standard_theme/english.lproj/label.css +11 -0
  1972. data/sproutcore/themes/standard_theme/english.lproj/list_item.css +82 -0
  1973. data/sproutcore/themes/standard_theme/english.lproj/menu.css +20 -0
  1974. data/sproutcore/themes/standard_theme/english.lproj/menu_item_view.css +36 -0
  1975. data/sproutcore/themes/standard_theme/english.lproj/pane.css +18 -0
  1976. data/sproutcore/themes/standard_theme/english.lproj/panel.css +33 -0
  1977. data/sproutcore/themes/standard_theme/english.lproj/picker.css +17 -0
  1978. data/sproutcore/themes/standard_theme/english.lproj/progress.css +27 -0
  1979. data/sproutcore/themes/standard_theme/english.lproj/radio.css +125 -0
  1980. data/sproutcore/themes/standard_theme/english.lproj/scroller.css +159 -0
  1981. data/sproutcore/themes/standard_theme/english.lproj/segmented.css +270 -0
  1982. data/sproutcore/themes/standard_theme/english.lproj/slider.css +94 -0
  1983. data/sproutcore/themes/standard_theme/english.lproj/split_view.css +11 -0
  1984. data/sproutcore/themes/standard_theme/english.lproj/tab.css +14 -0
  1985. data/sproutcore/themes/standard_theme/english.lproj/table.css +14 -0
  1986. data/sproutcore/themes/standard_theme/english.lproj/text_field.css +5 -0
  1987. data/sproutcore/themes/standard_theme/english.lproj/toolbar.css +7 -0
  1988. data/sproutcore/themes/standard_theme/english.lproj/well.css +36 -0
  1989. data/test-spade.html +8 -0
  1990. metadata +2111 -0
@@ -0,0 +1,2165 @@
1
+ (function() {
2
+ var Access, Arr, Assign, Base, Call, Class, Closure, Code, Comment, Existence, Expressions, Extends, For, IDENTIFIER, IS_STRING, If, In, Index, LEVEL_ACCESS, LEVEL_COND, LEVEL_LIST, LEVEL_OP, LEVEL_PAREN, LEVEL_TOP, Literal, NEGATE, NO, Obj, Op, Param, Parens, Push, Range, Return, SIMPLENUM, Scope, Slice, Splat, Switch, TAB, THIS, TRAILING_WHITESPACE, Throw, Try, UTILITIES, Value, While, YES, compact, del, ends, extend, flatten, last, merge, multident, starts, unfoldSoak, utility, _ref;
3
+ var __hasProp = Object.prototype.hasOwnProperty, __extends = function(child, parent) {
4
+ for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }
5
+ function ctor() { this.constructor = child; }
6
+ ctor.prototype = parent.prototype;
7
+ child.prototype = new ctor;
8
+ child.__super__ = parent.prototype;
9
+ return child;
10
+ }, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
11
+ Scope = require('./scope').Scope;
12
+ _ref = require('./helpers'), compact = _ref.compact, flatten = _ref.flatten, extend = _ref.extend, merge = _ref.merge, del = _ref.del, starts = _ref.starts, ends = _ref.ends, last = _ref.last;
13
+ exports.extend = extend;
14
+ YES = function() {
15
+ return true;
16
+ };
17
+ NO = function() {
18
+ return false;
19
+ };
20
+ THIS = function() {
21
+ return this;
22
+ };
23
+ NEGATE = function() {
24
+ this.negated = !this.negated;
25
+ return this;
26
+ };
27
+ exports.Base = Base = (function() {
28
+ function Base() {}
29
+ Base.prototype.compile = function(o, lvl) {
30
+ var node;
31
+ o = extend({}, o);
32
+ if (lvl) {
33
+ o.level = lvl;
34
+ }
35
+ node = this.unfoldSoak(o) || this;
36
+ node.tab = o.indent;
37
+ if (o.level === LEVEL_TOP || !node.isStatement(o)) {
38
+ return node.compileNode(o);
39
+ } else {
40
+ return node.compileClosure(o);
41
+ }
42
+ };
43
+ Base.prototype.compileClosure = function(o) {
44
+ if (this.jumps()) {
45
+ throw SyntaxError('cannot use a pure statement in an expression.');
46
+ }
47
+ o.sharedScope = true;
48
+ return Closure.wrap(this).compileNode(o);
49
+ };
50
+ Base.prototype.cache = function(o, level, reused) {
51
+ var ref, sub;
52
+ if (!this.isComplex()) {
53
+ ref = level ? this.compile(o, level) : this;
54
+ return [ref, ref];
55
+ } else {
56
+ ref = new Literal(reused || o.scope.freeVariable('ref'));
57
+ sub = new Assign(ref, this);
58
+ if (level) {
59
+ return [sub.compile(o, level), ref.value];
60
+ } else {
61
+ return [sub, ref];
62
+ }
63
+ }
64
+ };
65
+ Base.prototype.compileLoopReference = function(o, name) {
66
+ var src, tmp, _ref;
67
+ src = tmp = this.compile(o, LEVEL_LIST);
68
+ if (!((-Infinity < (_ref = +src) && _ref < Infinity) || IDENTIFIER.test(src) && o.scope.check(src, true))) {
69
+ src = "" + (tmp = o.scope.freeVariable(name)) + " = " + src;
70
+ }
71
+ return [src, tmp];
72
+ };
73
+ Base.prototype.makeReturn = function() {
74
+ return new Return(this);
75
+ };
76
+ Base.prototype.contains = function(pred) {
77
+ var contains;
78
+ contains = false;
79
+ this.traverseChildren(false, function(node) {
80
+ if (pred(node)) {
81
+ contains = true;
82
+ return false;
83
+ }
84
+ });
85
+ return contains;
86
+ };
87
+ Base.prototype.containsType = function(type) {
88
+ return this instanceof type || this.contains(function(node) {
89
+ return node instanceof type;
90
+ });
91
+ };
92
+ Base.prototype.lastNonComment = function(list) {
93
+ var i;
94
+ i = list.length;
95
+ while (i--) {
96
+ if (!(list[i] instanceof Comment)) {
97
+ return list[i];
98
+ }
99
+ }
100
+ return null;
101
+ };
102
+ Base.prototype.toString = function(idt, name) {
103
+ var tree;
104
+ if (idt == null) {
105
+ idt = '';
106
+ }
107
+ if (name == null) {
108
+ name = this.constructor.name;
109
+ }
110
+ tree = '\n' + idt + name;
111
+ if (this.soak) {
112
+ tree += '?';
113
+ }
114
+ this.eachChild(function(node) {
115
+ return tree += node.toString(idt + TAB);
116
+ });
117
+ return tree;
118
+ };
119
+ Base.prototype.eachChild = function(func) {
120
+ var attr, child, _i, _j, _len, _len2, _ref, _ref2;
121
+ if (!this.children) {
122
+ return this;
123
+ }
124
+ _ref = this.children;
125
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
126
+ attr = _ref[_i];
127
+ if (this[attr]) {
128
+ _ref2 = flatten([this[attr]]);
129
+ for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) {
130
+ child = _ref2[_j];
131
+ if (func(child) === false) {
132
+ return this;
133
+ }
134
+ }
135
+ }
136
+ }
137
+ return this;
138
+ };
139
+ Base.prototype.traverseChildren = function(crossScope, func) {
140
+ return this.eachChild(function(child) {
141
+ if (func(child) === false) {
142
+ return false;
143
+ }
144
+ return child.traverseChildren(crossScope, func);
145
+ });
146
+ };
147
+ Base.prototype.invert = function() {
148
+ return new Op('!', this);
149
+ };
150
+ Base.prototype.unwrapAll = function() {
151
+ var node;
152
+ node = this;
153
+ while (node !== (node = node.unwrap())) {
154
+ continue;
155
+ }
156
+ return node;
157
+ };
158
+ Base.prototype.children = [];
159
+ Base.prototype.isStatement = NO;
160
+ Base.prototype.jumps = NO;
161
+ Base.prototype.isComplex = YES;
162
+ Base.prototype.isChainable = NO;
163
+ Base.prototype.isAssignable = NO;
164
+ Base.prototype.unwrap = THIS;
165
+ Base.prototype.unfoldSoak = NO;
166
+ Base.prototype.assigns = NO;
167
+ return Base;
168
+ })();
169
+ exports.Expressions = Expressions = (function() {
170
+ __extends(Expressions, Base);
171
+ function Expressions(nodes) {
172
+ this.expressions = compact(flatten(nodes || []));
173
+ }
174
+ Expressions.prototype.children = ['expressions'];
175
+ Expressions.prototype.push = function(node) {
176
+ this.expressions.push(node);
177
+ return this;
178
+ };
179
+ Expressions.prototype.pop = function() {
180
+ return this.expressions.pop();
181
+ };
182
+ Expressions.prototype.unshift = function(node) {
183
+ this.expressions.unshift(node);
184
+ return this;
185
+ };
186
+ Expressions.prototype.unwrap = function() {
187
+ if (this.expressions.length === 1) {
188
+ return this.expressions[0];
189
+ } else {
190
+ return this;
191
+ }
192
+ };
193
+ Expressions.prototype.isEmpty = function() {
194
+ return !this.expressions.length;
195
+ };
196
+ Expressions.prototype.isStatement = function(o) {
197
+ var exp, _i, _len, _ref;
198
+ _ref = this.expressions;
199
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
200
+ exp = _ref[_i];
201
+ if (exp.isStatement(o)) {
202
+ return true;
203
+ }
204
+ }
205
+ return false;
206
+ };
207
+ Expressions.prototype.jumps = function(o) {
208
+ var exp, _i, _len, _ref;
209
+ _ref = this.expressions;
210
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
211
+ exp = _ref[_i];
212
+ if (exp.jumps(o)) {
213
+ return exp;
214
+ }
215
+ }
216
+ };
217
+ Expressions.prototype.makeReturn = function() {
218
+ var expr, len;
219
+ len = this.expressions.length;
220
+ while (len--) {
221
+ expr = this.expressions[len];
222
+ if (!(expr instanceof Comment)) {
223
+ this.expressions[len] = expr.makeReturn();
224
+ break;
225
+ }
226
+ }
227
+ return this;
228
+ };
229
+ Expressions.prototype.compile = function(o, level) {
230
+ if (o == null) {
231
+ o = {};
232
+ }
233
+ if (o.scope) {
234
+ return Expressions.__super__.compile.call(this, o, level);
235
+ } else {
236
+ return this.compileRoot(o);
237
+ }
238
+ };
239
+ Expressions.prototype.compileNode = function(o) {
240
+ var code, codes, node, top, _i, _len, _ref;
241
+ this.tab = o.indent;
242
+ top = o.level === LEVEL_TOP;
243
+ codes = [];
244
+ _ref = this.expressions;
245
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
246
+ node = _ref[_i];
247
+ node = node.unwrapAll();
248
+ node = node.unfoldSoak(o) || node;
249
+ if (top) {
250
+ node.front = true;
251
+ code = node.compile(o);
252
+ codes.push(node.isStatement(o) ? code : this.tab + code + ';');
253
+ } else {
254
+ codes.push(node.compile(o, LEVEL_LIST));
255
+ }
256
+ }
257
+ if (top) {
258
+ return codes.join('\n');
259
+ }
260
+ code = codes.join(', ') || 'void 0';
261
+ if (codes.length > 1 && o.level >= LEVEL_LIST) {
262
+ return "(" + code + ")";
263
+ } else {
264
+ return code;
265
+ }
266
+ };
267
+ Expressions.prototype.compileRoot = function(o) {
268
+ var code;
269
+ o.indent = this.tab = o.bare ? '' : TAB;
270
+ o.scope = new Scope(null, this, null);
271
+ o.level = LEVEL_TOP;
272
+ code = this.compileWithDeclarations(o);
273
+ code = code.replace(TRAILING_WHITESPACE, '');
274
+ if (o.bare) {
275
+ return code;
276
+ } else {
277
+ return "(function() {\n" + code + "\n}).call(this);\n";
278
+ }
279
+ };
280
+ Expressions.prototype.compileWithDeclarations = function(o) {
281
+ var code, exp, i, post, rest, scope, _len, _ref;
282
+ code = post = '';
283
+ _ref = this.expressions;
284
+ for (i = 0, _len = _ref.length; i < _len; i++) {
285
+ exp = _ref[i];
286
+ exp = exp.unwrap();
287
+ if (!(exp instanceof Comment || exp instanceof Literal)) {
288
+ break;
289
+ }
290
+ }
291
+ o = merge(o, {
292
+ level: LEVEL_TOP
293
+ });
294
+ if (i) {
295
+ rest = this.expressions.splice(i, this.expressions.length);
296
+ code = this.compileNode(o);
297
+ this.expressions = rest;
298
+ }
299
+ post = this.compileNode(o);
300
+ scope = o.scope;
301
+ if (scope.expressions === this) {
302
+ if (!o.globals && o.scope.hasDeclarations()) {
303
+ code += "" + this.tab + "var " + (scope.declaredVariables().join(', ')) + ";\n";
304
+ }
305
+ if (scope.hasAssignments) {
306
+ code += "" + this.tab + "var " + (multident(scope.assignedVariables().join(', '), this.tab)) + ";\n";
307
+ }
308
+ }
309
+ return code + post;
310
+ };
311
+ Expressions.wrap = function(nodes) {
312
+ if (nodes.length === 1 && nodes[0] instanceof Expressions) {
313
+ return nodes[0];
314
+ }
315
+ return new Expressions(nodes);
316
+ };
317
+ return Expressions;
318
+ })();
319
+ exports.Literal = Literal = (function() {
320
+ __extends(Literal, Base);
321
+ function Literal(value) {
322
+ this.value = value;
323
+ }
324
+ Literal.prototype.makeReturn = function() {
325
+ if (this.isStatement()) {
326
+ return this;
327
+ } else {
328
+ return new Return(this);
329
+ }
330
+ };
331
+ Literal.prototype.isAssignable = function() {
332
+ return IDENTIFIER.test(this.value);
333
+ };
334
+ Literal.prototype.isStatement = function() {
335
+ var _ref;
336
+ return (_ref = this.value) === 'break' || _ref === 'continue' || _ref === 'debugger';
337
+ };
338
+ Literal.prototype.isComplex = NO;
339
+ Literal.prototype.assigns = function(name) {
340
+ return name === this.value;
341
+ };
342
+ Literal.prototype.jumps = function(o) {
343
+ if (!this.isStatement()) {
344
+ return false;
345
+ }
346
+ if (!(o && (o.loop || o.block && (this.value !== 'continue')))) {
347
+ return this;
348
+ } else {
349
+ return false;
350
+ }
351
+ };
352
+ Literal.prototype.compileNode = function(o) {
353
+ var code;
354
+ code = this.value.reserved ? "\"" + this.value + "\"" : this.value;
355
+ if (this.isStatement()) {
356
+ return "" + this.tab + code + ";";
357
+ } else {
358
+ return code;
359
+ }
360
+ };
361
+ Literal.prototype.toString = function() {
362
+ return ' "' + this.value + '"';
363
+ };
364
+ return Literal;
365
+ })();
366
+ exports.Return = Return = (function() {
367
+ __extends(Return, Base);
368
+ function Return(expression) {
369
+ this.expression = expression;
370
+ }
371
+ Return.prototype.children = ['expression'];
372
+ Return.prototype.isStatement = YES;
373
+ Return.prototype.makeReturn = THIS;
374
+ Return.prototype.jumps = THIS;
375
+ Return.prototype.compile = function(o, level) {
376
+ var expr, _ref;
377
+ expr = (_ref = this.expression) != null ? _ref.makeReturn() : void 0;
378
+ if (expr && !(expr instanceof Return)) {
379
+ return expr.compile(o, level);
380
+ } else {
381
+ return Return.__super__.compile.call(this, o, level);
382
+ }
383
+ };
384
+ Return.prototype.compileNode = function(o) {
385
+ return this.tab + ("return" + (this.expression ? ' ' + this.expression.compile(o, LEVEL_PAREN) : '') + ";");
386
+ };
387
+ return Return;
388
+ })();
389
+ exports.Value = Value = (function() {
390
+ __extends(Value, Base);
391
+ function Value(base, props, tag) {
392
+ if (!props && base instanceof Value) {
393
+ return base;
394
+ }
395
+ this.base = base;
396
+ this.properties = props || [];
397
+ if (tag) {
398
+ this[tag] = true;
399
+ }
400
+ return this;
401
+ }
402
+ Value.prototype.children = ['base', 'properties'];
403
+ Value.prototype.push = function(prop) {
404
+ this.properties.push(prop);
405
+ return this;
406
+ };
407
+ Value.prototype.hasProperties = function() {
408
+ return !!this.properties.length;
409
+ };
410
+ Value.prototype.isArray = function() {
411
+ return !this.properties.length && this.base instanceof Arr;
412
+ };
413
+ Value.prototype.isComplex = function() {
414
+ return this.hasProperties() || this.base.isComplex();
415
+ };
416
+ Value.prototype.isAssignable = function() {
417
+ return this.hasProperties() || this.base.isAssignable();
418
+ };
419
+ Value.prototype.isSimpleNumber = function() {
420
+ return this.base instanceof Literal && SIMPLENUM.test(this.base.value);
421
+ };
422
+ Value.prototype.isAtomic = function() {
423
+ var node, _i, _len, _ref;
424
+ _ref = this.properties.concat(this.base);
425
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
426
+ node = _ref[_i];
427
+ if (node.soak || node instanceof Call) {
428
+ return false;
429
+ }
430
+ }
431
+ return true;
432
+ };
433
+ Value.prototype.isStatement = function(o) {
434
+ return !this.properties.length && this.base.isStatement(o);
435
+ };
436
+ Value.prototype.assigns = function(name) {
437
+ return !this.properties.length && this.base.assigns(name);
438
+ };
439
+ Value.prototype.jumps = function(o) {
440
+ return !this.properties.length && this.base.jumps(o);
441
+ };
442
+ Value.prototype.isObject = function(onlyGenerated) {
443
+ if (this.properties.length) {
444
+ return false;
445
+ }
446
+ return (this.base instanceof Obj) && (!onlyGenerated || this.base.generated);
447
+ };
448
+ Value.prototype.isSplice = function() {
449
+ return last(this.properties) instanceof Slice;
450
+ };
451
+ Value.prototype.makeReturn = function() {
452
+ if (this.properties.length) {
453
+ return Value.__super__.makeReturn.call(this);
454
+ } else {
455
+ return this.base.makeReturn();
456
+ }
457
+ };
458
+ Value.prototype.unwrap = function() {
459
+ if (this.properties.length) {
460
+ return this;
461
+ } else {
462
+ return this.base;
463
+ }
464
+ };
465
+ Value.prototype.cacheReference = function(o) {
466
+ var base, bref, name, nref;
467
+ name = last(this.properties);
468
+ if (this.properties.length < 2 && !this.base.isComplex() && !(name != null ? name.isComplex() : void 0)) {
469
+ return [this, this];
470
+ }
471
+ base = new Value(this.base, this.properties.slice(0, -1));
472
+ if (base.isComplex()) {
473
+ bref = new Literal(o.scope.freeVariable('base'));
474
+ base = new Value(new Parens(new Assign(bref, base)));
475
+ }
476
+ if (!name) {
477
+ return [base, bref];
478
+ }
479
+ if (name.isComplex()) {
480
+ nref = new Literal(o.scope.freeVariable('name'));
481
+ name = new Index(new Assign(nref, name.index));
482
+ nref = new Index(nref);
483
+ }
484
+ return [base.push(name), new Value(bref || base.base, [nref || name])];
485
+ };
486
+ Value.prototype.compileNode = function(o) {
487
+ var code, prop, props, _i, _len;
488
+ this.base.front = this.front;
489
+ props = this.properties;
490
+ code = this.base.compile(o, props.length ? LEVEL_ACCESS : null);
491
+ if (props[0] instanceof Access && this.isSimpleNumber()) {
492
+ code = "(" + code + ")";
493
+ }
494
+ for (_i = 0, _len = props.length; _i < _len; _i++) {
495
+ prop = props[_i];
496
+ code += prop.compile(o);
497
+ }
498
+ return code;
499
+ };
500
+ Value.prototype.unfoldSoak = function(o) {
501
+ var fst, i, ifn, prop, ref, snd, _len, _ref;
502
+ if (ifn = this.base.unfoldSoak(o)) {
503
+ Array.prototype.push.apply(ifn.body.properties, this.properties);
504
+ return ifn;
505
+ }
506
+ _ref = this.properties;
507
+ for (i = 0, _len = _ref.length; i < _len; i++) {
508
+ prop = _ref[i];
509
+ if (prop.soak) {
510
+ prop.soak = false;
511
+ fst = new Value(this.base, this.properties.slice(0, i));
512
+ snd = new Value(this.base, this.properties.slice(i));
513
+ if (fst.isComplex()) {
514
+ ref = new Literal(o.scope.freeVariable('ref'));
515
+ fst = new Parens(new Assign(ref, fst));
516
+ snd.base = ref;
517
+ }
518
+ return new If(new Existence(fst), snd, {
519
+ soak: true
520
+ });
521
+ }
522
+ }
523
+ return null;
524
+ };
525
+ return Value;
526
+ })();
527
+ exports.Comment = Comment = (function() {
528
+ __extends(Comment, Base);
529
+ function Comment(comment) {
530
+ this.comment = comment;
531
+ }
532
+ Comment.prototype.isStatement = YES;
533
+ Comment.prototype.makeReturn = THIS;
534
+ Comment.prototype.compileNode = function(o, level) {
535
+ var code;
536
+ code = '/*' + multident(this.comment, this.tab) + '*/';
537
+ if ((level || o.level) === LEVEL_TOP) {
538
+ code = o.indent + code;
539
+ }
540
+ return code;
541
+ };
542
+ return Comment;
543
+ })();
544
+ exports.Call = Call = (function() {
545
+ __extends(Call, Base);
546
+ function Call(variable, args, soak) {
547
+ this.args = args != null ? args : [];
548
+ this.soak = soak;
549
+ this.isNew = false;
550
+ this.isSuper = variable === 'super';
551
+ this.variable = this.isSuper ? null : variable;
552
+ }
553
+ Call.prototype.children = ['variable', 'args'];
554
+ Call.prototype.newInstance = function() {
555
+ var base;
556
+ base = this.variable.base || this.variable;
557
+ if (base instanceof Call) {
558
+ base.newInstance();
559
+ } else {
560
+ this.isNew = true;
561
+ }
562
+ return this;
563
+ };
564
+ Call.prototype.superReference = function(o) {
565
+ var method, name;
566
+ method = o.scope.method;
567
+ if (!method) {
568
+ throw SyntaxError('cannot call super outside of a function.');
569
+ }
570
+ name = method.name;
571
+ if (!name) {
572
+ throw SyntaxError('cannot call super on an anonymous function.');
573
+ }
574
+ if (method.klass) {
575
+ return "" + method.klass + ".__super__." + name;
576
+ } else {
577
+ return "" + name + ".__super__.constructor";
578
+ }
579
+ };
580
+ Call.prototype.unfoldSoak = function(o) {
581
+ var call, ifn, left, list, rite, _i, _len, _ref, _ref2;
582
+ if (this.soak) {
583
+ if (this.variable) {
584
+ if (ifn = unfoldSoak(o, this, 'variable')) {
585
+ return ifn;
586
+ }
587
+ _ref = new Value(this.variable).cacheReference(o), left = _ref[0], rite = _ref[1];
588
+ } else {
589
+ left = new Literal(this.superReference(o));
590
+ rite = new Value(left);
591
+ }
592
+ rite = new Call(rite, this.args);
593
+ rite.isNew = this.isNew;
594
+ left = new Literal("typeof " + (left.compile(o)) + " === \"function\"");
595
+ return new If(left, new Value(rite), {
596
+ soak: true
597
+ });
598
+ }
599
+ call = this;
600
+ list = [];
601
+ while (true) {
602
+ if (call.variable instanceof Call) {
603
+ list.push(call);
604
+ call = call.variable;
605
+ continue;
606
+ }
607
+ if (!(call.variable instanceof Value)) {
608
+ break;
609
+ }
610
+ list.push(call);
611
+ if (!((call = call.variable.base) instanceof Call)) {
612
+ break;
613
+ }
614
+ }
615
+ _ref2 = list.reverse();
616
+ for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
617
+ call = _ref2[_i];
618
+ if (ifn) {
619
+ if (call.variable instanceof Call) {
620
+ call.variable = ifn;
621
+ } else {
622
+ call.variable.base = ifn;
623
+ }
624
+ }
625
+ ifn = unfoldSoak(o, call, 'variable');
626
+ }
627
+ return ifn;
628
+ };
629
+ Call.prototype.compileNode = function(o) {
630
+ var arg, args, code, _ref;
631
+ if ((_ref = this.variable) != null) {
632
+ _ref.front = this.front;
633
+ }
634
+ if (code = Splat.compileSplattedArray(o, this.args, true)) {
635
+ return this.compileSplat(o, code);
636
+ }
637
+ args = ((function() {
638
+ var _i, _len, _ref, _results;
639
+ _ref = this.args;
640
+ _results = [];
641
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
642
+ arg = _ref[_i];
643
+ _results.push(arg.compile(o, LEVEL_LIST));
644
+ }
645
+ return _results;
646
+ }).call(this)).join(', ');
647
+ if (this.isSuper) {
648
+ return this.superReference(o) + (".call(this" + (args && ', ' + args) + ")");
649
+ } else {
650
+ return (this.isNew ? 'new ' : '') + this.variable.compile(o, LEVEL_ACCESS) + ("(" + args + ")");
651
+ }
652
+ };
653
+ Call.prototype.compileSuper = function(args, o) {
654
+ return "" + (this.superReference(o)) + ".call(this" + (args.length ? ', ' : '') + args + ")";
655
+ };
656
+ Call.prototype.compileSplat = function(o, splatArgs) {
657
+ var base, fun, idt, name, ref;
658
+ if (this.isSuper) {
659
+ return "" + (this.superReference(o)) + ".apply(this, " + splatArgs + ")";
660
+ }
661
+ if (this.isNew) {
662
+ idt = this.tab + TAB;
663
+ return "(function(func, args, ctor) {\n" + idt + "ctor.prototype = func.prototype;\n" + idt + "var child = new ctor, result = func.apply(child, args);\n" + idt + "return typeof result === \"object\" ? result : child;\n" + this.tab + "})(" + (this.variable.compile(o, LEVEL_LIST)) + ", " + splatArgs + ", function() {})";
664
+ }
665
+ base = new Value(this.variable);
666
+ if ((name = base.properties.pop()) && base.isComplex()) {
667
+ ref = o.scope.freeVariable('ref');
668
+ fun = "(" + ref + " = " + (base.compile(o, LEVEL_LIST)) + ")" + (name.compile(o));
669
+ } else {
670
+ fun = base.compile(o, LEVEL_ACCESS);
671
+ if (name) {
672
+ ref = fun;
673
+ fun += name.compile(o);
674
+ } else {
675
+ ref = 'null';
676
+ }
677
+ }
678
+ return "" + fun + ".apply(" + ref + ", " + splatArgs + ")";
679
+ };
680
+ return Call;
681
+ })();
682
+ exports.Extends = Extends = (function() {
683
+ __extends(Extends, Base);
684
+ function Extends(child, parent) {
685
+ this.child = child;
686
+ this.parent = parent;
687
+ }
688
+ Extends.prototype.children = ['child', 'parent'];
689
+ Extends.prototype.compile = function(o) {
690
+ utility('hasProp');
691
+ return new Call(new Value(new Literal(utility('extends'))), [this.child, this.parent]).compile(o);
692
+ };
693
+ return Extends;
694
+ })();
695
+ exports.Access = Access = (function() {
696
+ __extends(Access, Base);
697
+ function Access(name, tag) {
698
+ this.name = name;
699
+ this.name.asKey = true;
700
+ this.proto = tag === 'proto' ? '.prototype' : '';
701
+ this.soak = tag === 'soak';
702
+ }
703
+ Access.prototype.children = ['name'];
704
+ Access.prototype.compile = function(o) {
705
+ var name;
706
+ name = this.name.compile(o);
707
+ return this.proto + (IS_STRING.test(name) ? "[" + name + "]" : "." + name);
708
+ };
709
+ Access.prototype.isComplex = NO;
710
+ return Access;
711
+ })();
712
+ exports.Index = Index = (function() {
713
+ __extends(Index, Base);
714
+ function Index(index) {
715
+ this.index = index;
716
+ }
717
+ Index.prototype.children = ['index'];
718
+ Index.prototype.compile = function(o) {
719
+ return (this.proto ? '.prototype' : '') + ("[" + (this.index.compile(o, LEVEL_PAREN)) + "]");
720
+ };
721
+ Index.prototype.isComplex = function() {
722
+ return this.index.isComplex();
723
+ };
724
+ return Index;
725
+ })();
726
+ exports.Range = Range = (function() {
727
+ __extends(Range, Base);
728
+ Range.prototype.children = ['from', 'to'];
729
+ function Range(from, to, tag) {
730
+ this.from = from;
731
+ this.to = to;
732
+ this.exclusive = tag === 'exclusive';
733
+ this.equals = this.exclusive ? '' : '=';
734
+ }
735
+ Range.prototype.compileVariables = function(o) {
736
+ var parts, _ref, _ref2, _ref3;
737
+ o = merge(o, {
738
+ top: true
739
+ });
740
+ _ref = this.from.cache(o, LEVEL_LIST), this.from = _ref[0], this.fromVar = _ref[1];
741
+ _ref2 = this.to.cache(o, LEVEL_LIST), this.to = _ref2[0], this.toVar = _ref2[1];
742
+ _ref3 = [this.fromVar.match(SIMPLENUM), this.toVar.match(SIMPLENUM)], this.fromNum = _ref3[0], this.toNum = _ref3[1];
743
+ parts = [];
744
+ if (this.from !== this.fromVar) {
745
+ parts.push(this.from);
746
+ }
747
+ if (this.to !== this.toVar) {
748
+ return parts.push(this.to);
749
+ }
750
+ };
751
+ Range.prototype.compileNode = function(o) {
752
+ var compare, idx, incr, intro, step, stepPart, vars;
753
+ this.compileVariables(o);
754
+ if (!o.index) {
755
+ return this.compileArray(o);
756
+ }
757
+ if (this.fromNum && this.toNum) {
758
+ return this.compileSimple(o);
759
+ }
760
+ idx = del(o, 'index');
761
+ step = del(o, 'step');
762
+ vars = ("" + idx + " = " + this.from) + (this.to !== this.toVar ? ", " + this.to : '');
763
+ intro = "(" + this.fromVar + " <= " + this.toVar + " ? " + idx;
764
+ compare = "" + intro + " <" + this.equals + " " + this.toVar + " : " + idx + " >" + this.equals + " " + this.toVar + ")";
765
+ stepPart = step ? step.compile(o) : '1';
766
+ incr = step ? "" + idx + " += " + stepPart : "" + intro + " += " + stepPart + " : " + idx + " -= " + stepPart + ")";
767
+ return "" + vars + "; " + compare + "; " + incr;
768
+ };
769
+ Range.prototype.compileSimple = function(o) {
770
+ var from, idx, step, to, _ref;
771
+ _ref = [+this.fromNum, +this.toNum], from = _ref[0], to = _ref[1];
772
+ idx = del(o, 'index');
773
+ step = del(o, 'step');
774
+ step && (step = "" + idx + " += " + (step.compile(o)));
775
+ if (from <= to) {
776
+ return "" + idx + " = " + from + "; " + idx + " <" + this.equals + " " + to + "; " + (step || ("" + idx + "++"));
777
+ } else {
778
+ return "" + idx + " = " + from + "; " + idx + " >" + this.equals + " " + to + "; " + (step || ("" + idx + "--"));
779
+ }
780
+ };
781
+ Range.prototype.compileArray = function(o) {
782
+ var body, clause, i, idt, post, pre, range, result, vars, _i, _ref, _ref2, _results;
783
+ if (this.fromNum && this.toNum && Math.abs(this.fromNum - this.toNum) <= 20) {
784
+ range = (function() {
785
+ _results = [];
786
+ for (var _i = _ref = +this.fromNum, _ref2 = +this.toNum; _ref <= _ref2 ? _i <= _ref2 : _i >= _ref2; _ref <= _ref2 ? _i += 1 : _i -= 1){ _results.push(_i); }
787
+ return _results;
788
+ }).call(this);
789
+ if (this.exclusive) {
790
+ range.pop();
791
+ }
792
+ return "[" + (range.join(', ')) + "]";
793
+ }
794
+ idt = this.tab + TAB;
795
+ i = o.scope.freeVariable('i');
796
+ result = o.scope.freeVariable('results');
797
+ pre = "\n" + idt + result + " = [];";
798
+ if (this.fromNum && this.toNum) {
799
+ o.index = i;
800
+ body = this.compileSimple(o);
801
+ } else {
802
+ vars = ("" + i + " = " + this.from) + (this.to !== this.toVar ? ", " + this.to : '');
803
+ clause = "" + this.fromVar + " <= " + this.toVar + " ?";
804
+ body = "var " + vars + "; " + clause + " " + i + " <" + this.equals + " " + this.toVar + " : " + i + " >" + this.equals + " " + this.toVar + "; " + clause + " " + i + " += 1 : " + i + " -= 1";
805
+ }
806
+ post = "{ " + result + ".push(" + i + "); }\n" + idt + "return " + result + ";\n" + o.indent;
807
+ return "(function() {" + pre + "\n" + idt + "for (" + body + ")" + post + "}).call(this)";
808
+ };
809
+ return Range;
810
+ })();
811
+ exports.Slice = Slice = (function() {
812
+ __extends(Slice, Base);
813
+ Slice.prototype.children = ['range'];
814
+ function Slice(range) {
815
+ this.range = range;
816
+ Slice.__super__.constructor.call(this);
817
+ }
818
+ Slice.prototype.compileNode = function(o) {
819
+ var compiled, from, fromStr, to, toStr, _ref;
820
+ _ref = this.range, to = _ref.to, from = _ref.from;
821
+ fromStr = from && from.compile(o, LEVEL_PAREN) || '0';
822
+ compiled = to && to.compile(o, LEVEL_PAREN);
823
+ if (to && !(!this.range.exclusive && +compiled === -1)) {
824
+ toStr = ', ' + (this.range.exclusive ? compiled : SIMPLENUM.test(compiled) ? (+compiled + 1).toString() : "(" + compiled + " + 1) || 9e9");
825
+ }
826
+ return ".slice(" + fromStr + (toStr || '') + ")";
827
+ };
828
+ return Slice;
829
+ })();
830
+ exports.Obj = Obj = (function() {
831
+ __extends(Obj, Base);
832
+ function Obj(props, generated) {
833
+ this.generated = generated != null ? generated : false;
834
+ this.objects = this.properties = props || [];
835
+ }
836
+ Obj.prototype.children = ['properties'];
837
+ Obj.prototype.compileNode = function(o) {
838
+ var i, idt, indent, join, lastNoncom, obj, prop, props;
839
+ props = this.properties;
840
+ if (!props.length) {
841
+ if (this.front) {
842
+ return '({})';
843
+ } else {
844
+ return '{}';
845
+ }
846
+ }
847
+ idt = o.indent += TAB;
848
+ lastNoncom = this.lastNonComment(this.properties);
849
+ props = (function() {
850
+ var _len, _results;
851
+ _results = [];
852
+ for (i = 0, _len = props.length; i < _len; i++) {
853
+ prop = props[i];
854
+ join = i === props.length - 1 ? '' : prop === lastNoncom || prop instanceof Comment ? '\n' : ',\n';
855
+ indent = prop instanceof Comment ? '' : idt;
856
+ if (prop instanceof Value && prop["this"]) {
857
+ prop = new Assign(prop.properties[0].name, prop, 'object');
858
+ }
859
+ if (!(prop instanceof Comment)) {
860
+ if (!(prop instanceof Assign)) {
861
+ prop = new Assign(prop, prop, 'object');
862
+ }
863
+ (prop.variable.base || prop.variable).asKey = true;
864
+ }
865
+ _results.push(indent + prop.compile(o, LEVEL_TOP) + join);
866
+ }
867
+ return _results;
868
+ })();
869
+ props = props.join('');
870
+ obj = "{" + (props && '\n' + props + '\n' + this.tab) + "}";
871
+ if (this.front) {
872
+ return "(" + obj + ")";
873
+ } else {
874
+ return obj;
875
+ }
876
+ };
877
+ Obj.prototype.assigns = function(name) {
878
+ var prop, _i, _len, _ref;
879
+ _ref = this.properties;
880
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
881
+ prop = _ref[_i];
882
+ if (prop.assigns(name)) {
883
+ return true;
884
+ }
885
+ }
886
+ return false;
887
+ };
888
+ return Obj;
889
+ })();
890
+ exports.Arr = Arr = (function() {
891
+ __extends(Arr, Base);
892
+ function Arr(objs) {
893
+ this.objects = objs || [];
894
+ }
895
+ Arr.prototype.children = ['objects'];
896
+ Arr.prototype.compileNode = function(o) {
897
+ var code, obj;
898
+ if (!this.objects.length) {
899
+ return '[]';
900
+ }
901
+ o.indent += TAB;
902
+ if (code = Splat.compileSplattedArray(o, this.objects)) {
903
+ return code;
904
+ }
905
+ code = ((function() {
906
+ var _i, _len, _ref, _results;
907
+ _ref = this.objects;
908
+ _results = [];
909
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
910
+ obj = _ref[_i];
911
+ _results.push(obj.compile(o, LEVEL_LIST));
912
+ }
913
+ return _results;
914
+ }).call(this)).join(', ');
915
+ if (code.indexOf('\n') >= 0) {
916
+ return "[\n" + o.indent + code + "\n" + this.tab + "]";
917
+ } else {
918
+ return "[" + code + "]";
919
+ }
920
+ };
921
+ Arr.prototype.assigns = function(name) {
922
+ var obj, _i, _len, _ref;
923
+ _ref = this.objects;
924
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
925
+ obj = _ref[_i];
926
+ if (obj.assigns(name)) {
927
+ return true;
928
+ }
929
+ }
930
+ return false;
931
+ };
932
+ return Arr;
933
+ })();
934
+ exports.Class = Class = (function() {
935
+ __extends(Class, Base);
936
+ function Class(variable, parent, body) {
937
+ this.variable = variable;
938
+ this.parent = parent;
939
+ this.body = body != null ? body : new Expressions;
940
+ this.boundFuncs = [];
941
+ this.body.classBody = true;
942
+ }
943
+ Class.prototype.children = ['variable', 'parent', 'body'];
944
+ Class.prototype.determineName = function() {
945
+ var decl, tail;
946
+ if (!this.variable) {
947
+ return null;
948
+ }
949
+ decl = (tail = last(this.variable.properties)) ? tail instanceof Access && tail.name.value : this.variable.base.value;
950
+ return decl && (decl = IDENTIFIER.test(decl) && decl);
951
+ };
952
+ Class.prototype.setContext = function(name) {
953
+ return this.body.traverseChildren(false, function(node) {
954
+ if (node.classBody) {
955
+ return false;
956
+ }
957
+ if (node instanceof Literal && node.value === 'this') {
958
+ return node.value = name;
959
+ } else if (node instanceof Code) {
960
+ node.klass = name;
961
+ if (node.bound) {
962
+ return node.context = name;
963
+ }
964
+ }
965
+ });
966
+ };
967
+ Class.prototype.addBoundFunctions = function(o) {
968
+ var bname, bvar, _i, _len, _ref, _results;
969
+ if (this.boundFuncs.length) {
970
+ _ref = this.boundFuncs;
971
+ _results = [];
972
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
973
+ bvar = _ref[_i];
974
+ bname = bvar.compile(o);
975
+ _results.push(this.ctor.body.unshift(new Literal("this." + bname + " = " + (utility('bind')) + "(this." + bname + ", this);")));
976
+ }
977
+ return _results;
978
+ }
979
+ };
980
+ Class.prototype.addProperties = function(node, name) {
981
+ var assign, base, func, props, _results;
982
+ props = node.base.properties.slice(0);
983
+ _results = [];
984
+ while (assign = props.shift()) {
985
+ if (assign instanceof Assign) {
986
+ base = assign.variable.base;
987
+ delete assign.context;
988
+ func = assign.value;
989
+ if (base.value === 'constructor') {
990
+ if (this.ctor) {
991
+ throw new Error('cannot define more than one constructor in a class');
992
+ }
993
+ if (func.bound) {
994
+ throw new Error('cannot define a constructor as a bound function');
995
+ }
996
+ if (func instanceof Code) {
997
+ assign = this.ctor = func;
998
+ } else {
999
+ assign = this.ctor = new Assign(new Value(new Literal(name)), func);
1000
+ }
1001
+ } else {
1002
+ if (!assign.variable["this"]) {
1003
+ assign.variable = new Value(new Literal(name), [new Access(base, 'proto')]);
1004
+ }
1005
+ if (func instanceof Code && func.bound) {
1006
+ this.boundFuncs.push(base);
1007
+ func.bound = false;
1008
+ }
1009
+ }
1010
+ }
1011
+ _results.push(assign);
1012
+ }
1013
+ return _results;
1014
+ };
1015
+ Class.prototype.walkBody = function(name) {
1016
+ return this.traverseChildren(false, __bind(function(child) {
1017
+ var exps, i, node, _len, _ref;
1018
+ if (child instanceof Class) {
1019
+ return false;
1020
+ }
1021
+ if (child instanceof Expressions) {
1022
+ _ref = exps = child.expressions;
1023
+ for (i = 0, _len = _ref.length; i < _len; i++) {
1024
+ node = _ref[i];
1025
+ if (node instanceof Value && node.isObject(true)) {
1026
+ exps[i] = this.addProperties(node, name);
1027
+ }
1028
+ }
1029
+ return child.expressions = exps = flatten(exps);
1030
+ }
1031
+ }, this));
1032
+ };
1033
+ Class.prototype.ensureConstructor = function(name) {
1034
+ if (!this.ctor) {
1035
+ this.ctor = new Code;
1036
+ if (this.parent) {
1037
+ this.ctor.body.push(new Call('super', [new Splat(new Literal('arguments'))]));
1038
+ }
1039
+ this.body.expressions.unshift(this.ctor);
1040
+ }
1041
+ this.ctor.ctor = this.ctor.name = name;
1042
+ this.ctor.klass = null;
1043
+ return this.ctor.noReturn = true;
1044
+ };
1045
+ Class.prototype.compileNode = function(o) {
1046
+ var decl, klass, lname, name;
1047
+ decl = this.determineName();
1048
+ name = decl || this.name || '_Class';
1049
+ lname = new Literal(name);
1050
+ this.setContext(name);
1051
+ this.walkBody(name);
1052
+ if (this.parent) {
1053
+ this.body.expressions.unshift(new Extends(lname, this.parent));
1054
+ }
1055
+ this.ensureConstructor(name);
1056
+ this.body.expressions.push(lname);
1057
+ this.addBoundFunctions(o);
1058
+ klass = new Parens(Closure.wrap(this.body), true);
1059
+ if (this.variable) {
1060
+ klass = new Assign(this.variable, klass);
1061
+ }
1062
+ return klass.compile(o);
1063
+ };
1064
+ return Class;
1065
+ })();
1066
+ exports.Assign = Assign = (function() {
1067
+ __extends(Assign, Base);
1068
+ function Assign(variable, value, context, options) {
1069
+ this.variable = variable;
1070
+ this.value = value;
1071
+ this.context = context;
1072
+ this.param = options && options.param;
1073
+ }
1074
+ Assign.prototype.METHOD_DEF = /^(?:(\S+)\.prototype\.|\S+?)?\b([$A-Za-z_][$\w]*)$/;
1075
+ Assign.prototype.children = ['variable', 'value'];
1076
+ Assign.prototype.assigns = function(name) {
1077
+ return this[this.context === 'object' ? 'value' : 'variable'].assigns(name);
1078
+ };
1079
+ Assign.prototype.unfoldSoak = function(o) {
1080
+ return unfoldSoak(o, this, 'variable');
1081
+ };
1082
+ Assign.prototype.compileNode = function(o) {
1083
+ var isValue, match, name, val, _ref;
1084
+ if (isValue = this.variable instanceof Value) {
1085
+ if (this.variable.isArray() || this.variable.isObject()) {
1086
+ return this.compilePatternMatch(o);
1087
+ }
1088
+ if (this.variable.isSplice()) {
1089
+ return this.compileSplice(o);
1090
+ }
1091
+ if ((_ref = this.context) === '||=' || _ref === '&&=' || _ref === '?=') {
1092
+ return this.compileConditional(o);
1093
+ }
1094
+ }
1095
+ name = this.variable.compile(o, LEVEL_LIST);
1096
+ if (this.value instanceof Code && (match = this.METHOD_DEF.exec(name))) {
1097
+ this.value.name = match[2];
1098
+ if (match[1]) {
1099
+ this.value.klass = match[1];
1100
+ }
1101
+ }
1102
+ val = this.value.compile(o, LEVEL_LIST);
1103
+ if (this.context === 'object') {
1104
+ return "" + name + ": " + val;
1105
+ }
1106
+ if (!this.variable.isAssignable()) {
1107
+ throw SyntaxError("\"" + (this.variable.compile(o)) + "\" cannot be assigned.");
1108
+ }
1109
+ if (!(this.context || isValue && (this.variable.namespaced || this.variable.hasProperties()))) {
1110
+ if (this.param) {
1111
+ o.scope.add(name, 'var');
1112
+ } else {
1113
+ o.scope.find(name);
1114
+ }
1115
+ }
1116
+ val = name + (" " + (this.context || '=') + " ") + val;
1117
+ if (o.level <= LEVEL_LIST) {
1118
+ return val;
1119
+ } else {
1120
+ return "(" + val + ")";
1121
+ }
1122
+ };
1123
+ Assign.prototype.compilePatternMatch = function(o) {
1124
+ var acc, assigns, code, i, idx, isObject, ivar, obj, objects, olen, ref, rest, splat, top, val, value, vvar, _len, _ref, _ref2, _ref3, _ref4;
1125
+ top = o.level === LEVEL_TOP;
1126
+ value = this.value;
1127
+ objects = this.variable.base.objects;
1128
+ if (!(olen = objects.length)) {
1129
+ return value.compile(o);
1130
+ }
1131
+ isObject = this.variable.isObject();
1132
+ if (top && olen === 1 && !((obj = objects[0]) instanceof Splat)) {
1133
+ if (obj instanceof Assign) {
1134
+ _ref = obj, idx = _ref.variable.base, obj = _ref.value;
1135
+ } else {
1136
+ if (obj.base instanceof Parens) {
1137
+ _ref2 = new Value(obj.unwrapAll()).cacheReference(o), obj = _ref2[0], idx = _ref2[1];
1138
+ } else {
1139
+ idx = isObject ? obj["this"] ? obj.properties[0].name : obj : new Literal(0);
1140
+ }
1141
+ }
1142
+ acc = IDENTIFIER.test(idx.unwrap().value || 0);
1143
+ value = new Value(value);
1144
+ value.properties.push(new (acc ? Access : Index)(idx));
1145
+ return new Assign(obj, value).compile(o);
1146
+ }
1147
+ vvar = value.compile(o, LEVEL_LIST);
1148
+ assigns = [];
1149
+ splat = false;
1150
+ if (!IDENTIFIER.test(vvar) || this.variable.assigns(vvar)) {
1151
+ assigns.push("" + (ref = o.scope.freeVariable('ref')) + " = " + vvar);
1152
+ vvar = ref;
1153
+ }
1154
+ for (i = 0, _len = objects.length; i < _len; i++) {
1155
+ obj = objects[i];
1156
+ idx = i;
1157
+ if (isObject) {
1158
+ if (obj instanceof Assign) {
1159
+ _ref3 = obj, idx = _ref3.variable.base, obj = _ref3.value;
1160
+ } else {
1161
+ if (obj.base instanceof Parens) {
1162
+ _ref4 = new Value(obj.unwrapAll()).cacheReference(o), obj = _ref4[0], idx = _ref4[1];
1163
+ } else {
1164
+ idx = obj["this"] ? obj.properties[0].name : obj;
1165
+ }
1166
+ }
1167
+ }
1168
+ if (!splat && obj instanceof Splat) {
1169
+ val = "" + olen + " <= " + vvar + ".length ? " + (utility('slice')) + ".call(" + vvar + ", " + i;
1170
+ if (rest = olen - i - 1) {
1171
+ ivar = o.scope.freeVariable('i');
1172
+ val += ", " + ivar + " = " + vvar + ".length - " + rest + ") : (" + ivar + " = " + i + ", [])";
1173
+ } else {
1174
+ val += ") : []";
1175
+ }
1176
+ val = new Literal(val);
1177
+ splat = "" + ivar + "++";
1178
+ } else {
1179
+ if (obj instanceof Splat) {
1180
+ obj = obj.name.compile(o);
1181
+ throw SyntaxError("multiple splats are disallowed in an assignment: " + obj + " ...");
1182
+ }
1183
+ if (typeof idx === 'number') {
1184
+ idx = new Literal(splat || idx);
1185
+ acc = false;
1186
+ } else {
1187
+ acc = isObject && IDENTIFIER.test(idx.unwrap().value || 0);
1188
+ }
1189
+ val = new Value(new Literal(vvar), [new (acc ? Access : Index)(idx)]);
1190
+ }
1191
+ assigns.push(new Assign(obj, val, null, {
1192
+ param: this.param
1193
+ }).compile(o, LEVEL_TOP));
1194
+ }
1195
+ if (!top) {
1196
+ assigns.push(vvar);
1197
+ }
1198
+ code = assigns.join(', ');
1199
+ if (o.level < LEVEL_LIST) {
1200
+ return code;
1201
+ } else {
1202
+ return "(" + code + ")";
1203
+ }
1204
+ };
1205
+ Assign.prototype.compileConditional = function(o) {
1206
+ var left, rite, _ref;
1207
+ _ref = this.variable.cacheReference(o), left = _ref[0], rite = _ref[1];
1208
+ return new Op(this.context.slice(0, -1), left, new Assign(rite, this.value, '=')).compile(o);
1209
+ };
1210
+ Assign.prototype.compileSplice = function(o) {
1211
+ var code, exclusive, from, fromDecl, fromRef, name, to, valDef, valRef, _ref, _ref2, _ref3;
1212
+ _ref = this.variable.properties.pop().range, from = _ref.from, to = _ref.to, exclusive = _ref.exclusive;
1213
+ name = this.variable.compile(o);
1214
+ _ref2 = (from != null ? from.cache(o, LEVEL_OP) : void 0) || ['0', '0'], fromDecl = _ref2[0], fromRef = _ref2[1];
1215
+ if (to) {
1216
+ if ((from != null ? from.isSimpleNumber() : void 0) && to.isSimpleNumber()) {
1217
+ to = +to.compile(o) - +fromRef;
1218
+ if (!exclusive) {
1219
+ to += 1;
1220
+ }
1221
+ } else {
1222
+ to = to.compile(o) + ' - ' + fromRef;
1223
+ if (!exclusive) {
1224
+ to += ' + 1';
1225
+ }
1226
+ }
1227
+ } else {
1228
+ to = "9e9";
1229
+ }
1230
+ _ref3 = this.value.cache(o, LEVEL_LIST), valDef = _ref3[0], valRef = _ref3[1];
1231
+ code = "[].splice.apply(" + name + ", [" + fromDecl + ", " + to + "].concat(" + valDef + ")), " + valRef;
1232
+ if (o.level > LEVEL_TOP) {
1233
+ return "(" + code + ")";
1234
+ } else {
1235
+ return code;
1236
+ }
1237
+ };
1238
+ return Assign;
1239
+ })();
1240
+ exports.Code = Code = (function() {
1241
+ __extends(Code, Base);
1242
+ function Code(params, body, tag) {
1243
+ this.params = params || [];
1244
+ this.body = body || new Expressions;
1245
+ this.bound = tag === 'boundfunc';
1246
+ if (this.bound) {
1247
+ this.context = 'this';
1248
+ }
1249
+ }
1250
+ Code.prototype.children = ['params', 'body'];
1251
+ Code.prototype.isStatement = function() {
1252
+ return !!this.ctor;
1253
+ };
1254
+ Code.prototype.jumps = NO;
1255
+ Code.prototype.compileNode = function(o) {
1256
+ var code, exprs, i, idt, lit, p, param, ref, splats, v, val, vars, wasEmpty, _i, _j, _len, _len2, _len3, _ref, _ref2, _ref3;
1257
+ o.scope = new Scope(o.scope, this.body, this);
1258
+ o.scope.shared = del(o, 'sharedScope');
1259
+ o.indent += TAB;
1260
+ delete o.bare;
1261
+ delete o.globals;
1262
+ vars = [];
1263
+ exprs = [];
1264
+ _ref = this.params;
1265
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
1266
+ param = _ref[_i];
1267
+ if (param.splat) {
1268
+ splats = new Assign(new Value(new Arr((function() {
1269
+ var _i, _len, _ref, _results;
1270
+ _ref = this.params;
1271
+ _results = [];
1272
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
1273
+ p = _ref[_i];
1274
+ _results.push(p.asReference(o));
1275
+ }
1276
+ return _results;
1277
+ }).call(this))), new Value(new Literal('arguments')));
1278
+ break;
1279
+ }
1280
+ }
1281
+ _ref2 = this.params;
1282
+ for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) {
1283
+ param = _ref2[_j];
1284
+ if (param.isComplex()) {
1285
+ val = ref = param.asReference(o);
1286
+ if (param.value) {
1287
+ val = new Op('?', ref, param.value);
1288
+ }
1289
+ exprs.push(new Assign(new Value(param.name), val, '=', {
1290
+ param: true
1291
+ }));
1292
+ } else {
1293
+ ref = param;
1294
+ if (param.value) {
1295
+ lit = new Literal(ref.name.value + ' == null');
1296
+ val = new Assign(new Value(param.name), param.value, '=');
1297
+ exprs.push(new If(lit, val));
1298
+ }
1299
+ }
1300
+ if (!splats) {
1301
+ vars.push(ref);
1302
+ }
1303
+ }
1304
+ wasEmpty = this.body.isEmpty();
1305
+ if (splats) {
1306
+ exprs.unshift(splats);
1307
+ }
1308
+ if (exprs.length) {
1309
+ (_ref3 = this.body.expressions).unshift.apply(_ref3, exprs);
1310
+ }
1311
+ if (!splats) {
1312
+ for (i = 0, _len3 = vars.length; i < _len3; i++) {
1313
+ v = vars[i];
1314
+ o.scope.parameter(vars[i] = v.compile(o));
1315
+ }
1316
+ }
1317
+ if (!(wasEmpty || this.noReturn)) {
1318
+ this.body.makeReturn();
1319
+ }
1320
+ idt = o.indent;
1321
+ code = 'function';
1322
+ if (this.ctor) {
1323
+ code += ' ' + this.name;
1324
+ }
1325
+ code += '(' + vars.join(', ') + ') {';
1326
+ if (!this.body.isEmpty()) {
1327
+ code += "\n" + (this.body.compileWithDeclarations(o)) + "\n" + this.tab;
1328
+ }
1329
+ code += '}';
1330
+ if (this.ctor) {
1331
+ return this.tab + code;
1332
+ }
1333
+ if (this.bound) {
1334
+ return utility('bind') + ("(" + code + ", " + this.context + ")");
1335
+ }
1336
+ if (this.front || (o.level >= LEVEL_ACCESS)) {
1337
+ return "(" + code + ")";
1338
+ } else {
1339
+ return code;
1340
+ }
1341
+ };
1342
+ Code.prototype.traverseChildren = function(crossScope, func) {
1343
+ if (crossScope) {
1344
+ return Code.__super__.traverseChildren.call(this, crossScope, func);
1345
+ }
1346
+ };
1347
+ return Code;
1348
+ })();
1349
+ exports.Param = Param = (function() {
1350
+ __extends(Param, Base);
1351
+ function Param(name, value, splat) {
1352
+ this.name = name;
1353
+ this.value = value;
1354
+ this.splat = splat;
1355
+ }
1356
+ Param.prototype.children = ['name', 'value'];
1357
+ Param.prototype.compile = function(o) {
1358
+ return this.name.compile(o, LEVEL_LIST);
1359
+ };
1360
+ Param.prototype.asReference = function(o) {
1361
+ var node;
1362
+ if (this.reference) {
1363
+ return this.reference;
1364
+ }
1365
+ node = this.name;
1366
+ if (node["this"]) {
1367
+ node = node.properties[0].name;
1368
+ if (node.value.reserved) {
1369
+ node = new Literal('_' + node.value);
1370
+ }
1371
+ } else if (node.isComplex()) {
1372
+ node = new Literal(o.scope.freeVariable('arg'));
1373
+ }
1374
+ node = new Value(node);
1375
+ if (this.splat) {
1376
+ node = new Splat(node);
1377
+ }
1378
+ return this.reference = node;
1379
+ };
1380
+ Param.prototype.isComplex = function() {
1381
+ return this.name.isComplex();
1382
+ };
1383
+ return Param;
1384
+ })();
1385
+ exports.Splat = Splat = (function() {
1386
+ __extends(Splat, Base);
1387
+ Splat.prototype.children = ['name'];
1388
+ Splat.prototype.isAssignable = YES;
1389
+ function Splat(name) {
1390
+ this.name = name.compile ? name : new Literal(name);
1391
+ }
1392
+ Splat.prototype.assigns = function(name) {
1393
+ return this.name.assigns(name);
1394
+ };
1395
+ Splat.prototype.compile = function(o) {
1396
+ if (this.index != null) {
1397
+ return this.compileParam(o);
1398
+ } else {
1399
+ return this.name.compile(o);
1400
+ }
1401
+ };
1402
+ Splat.compileSplattedArray = function(o, list, apply) {
1403
+ var args, base, code, i, index, node, _len;
1404
+ index = -1;
1405
+ while ((node = list[++index]) && !(node instanceof Splat)) {
1406
+ continue;
1407
+ }
1408
+ if (index >= list.length) {
1409
+ return '';
1410
+ }
1411
+ if (list.length === 1) {
1412
+ code = list[0].compile(o, LEVEL_LIST);
1413
+ if (apply) {
1414
+ return code;
1415
+ }
1416
+ return "" + (utility('slice')) + ".call(" + code + ")";
1417
+ }
1418
+ args = list.slice(index);
1419
+ for (i = 0, _len = args.length; i < _len; i++) {
1420
+ node = args[i];
1421
+ code = node.compile(o, LEVEL_LIST);
1422
+ args[i] = node instanceof Splat ? "" + (utility('slice')) + ".call(" + code + ")" : "[" + code + "]";
1423
+ }
1424
+ if (index === 0) {
1425
+ return args[0] + (".concat(" + (args.slice(1).join(', ')) + ")");
1426
+ }
1427
+ base = (function() {
1428
+ var _i, _len, _ref, _results;
1429
+ _ref = list.slice(0, index);
1430
+ _results = [];
1431
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
1432
+ node = _ref[_i];
1433
+ _results.push(node.compile(o, LEVEL_LIST));
1434
+ }
1435
+ return _results;
1436
+ })();
1437
+ return "[" + (base.join(', ')) + "].concat(" + (args.join(', ')) + ")";
1438
+ };
1439
+ return Splat;
1440
+ })();
1441
+ exports.While = While = (function() {
1442
+ __extends(While, Base);
1443
+ function While(condition, options) {
1444
+ this.condition = (options != null ? options.invert : void 0) ? condition.invert() : condition;
1445
+ this.guard = options != null ? options.guard : void 0;
1446
+ }
1447
+ While.prototype.children = ['condition', 'guard', 'body'];
1448
+ While.prototype.isStatement = YES;
1449
+ While.prototype.makeReturn = function() {
1450
+ this.returns = true;
1451
+ return this;
1452
+ };
1453
+ While.prototype.addBody = function(body) {
1454
+ this.body = body;
1455
+ return this;
1456
+ };
1457
+ While.prototype.jumps = function() {
1458
+ var expressions, node, _i, _len;
1459
+ expressions = this.body.expressions;
1460
+ if (!expressions.length) {
1461
+ return false;
1462
+ }
1463
+ for (_i = 0, _len = expressions.length; _i < _len; _i++) {
1464
+ node = expressions[_i];
1465
+ if (node.jumps({
1466
+ loop: true
1467
+ })) {
1468
+ return node;
1469
+ }
1470
+ }
1471
+ return false;
1472
+ };
1473
+ While.prototype.compileNode = function(o) {
1474
+ var body, code, rvar, set;
1475
+ o.indent += TAB;
1476
+ set = '';
1477
+ body = this.body;
1478
+ if (body.isEmpty()) {
1479
+ body = '';
1480
+ } else {
1481
+ if (o.level > LEVEL_TOP || this.returns) {
1482
+ rvar = o.scope.freeVariable('results');
1483
+ set = "" + this.tab + rvar + " = [];\n";
1484
+ if (body) {
1485
+ body = Push.wrap(rvar, body);
1486
+ }
1487
+ }
1488
+ if (this.guard) {
1489
+ body = Expressions.wrap([new If(this.guard, body)]);
1490
+ }
1491
+ body = "\n" + (body.compile(o, LEVEL_TOP)) + "\n" + this.tab;
1492
+ }
1493
+ code = set + this.tab + ("while (" + (this.condition.compile(o, LEVEL_PAREN)) + ") {" + body + "}");
1494
+ if (this.returns) {
1495
+ code += "\n" + this.tab + "return " + rvar + ";";
1496
+ }
1497
+ return code;
1498
+ };
1499
+ return While;
1500
+ })();
1501
+ exports.Op = Op = (function() {
1502
+ var CONVERSIONS, INVERSIONS;
1503
+ __extends(Op, Base);
1504
+ function Op(op, first, second, flip) {
1505
+ if (op === 'in') {
1506
+ return new In(first, second);
1507
+ }
1508
+ if (op === 'do') {
1509
+ return new Call(first, first.params || []);
1510
+ }
1511
+ if (op === 'new') {
1512
+ if (first instanceof Call) {
1513
+ return first.newInstance();
1514
+ }
1515
+ if (first instanceof Code && first.bound) {
1516
+ first = new Parens(first);
1517
+ }
1518
+ }
1519
+ this.operator = CONVERSIONS[op] || op;
1520
+ this.first = first;
1521
+ this.second = second;
1522
+ this.flip = !!flip;
1523
+ return this;
1524
+ }
1525
+ CONVERSIONS = {
1526
+ '==': '===',
1527
+ '!=': '!==',
1528
+ 'of': 'in'
1529
+ };
1530
+ INVERSIONS = {
1531
+ '!==': '===',
1532
+ '===': '!=='
1533
+ };
1534
+ Op.prototype.children = ['first', 'second'];
1535
+ Op.prototype.isSimpleNumber = NO;
1536
+ Op.prototype.isUnary = function() {
1537
+ return !this.second;
1538
+ };
1539
+ Op.prototype.isChainable = function() {
1540
+ var _ref;
1541
+ return (_ref = this.operator) === '<' || _ref === '>' || _ref === '>=' || _ref === '<=' || _ref === '===' || _ref === '!==';
1542
+ };
1543
+ Op.prototype.invert = function() {
1544
+ var allInvertable, curr, fst, op, _ref;
1545
+ if (this.isChainable() && this.first.isChainable()) {
1546
+ allInvertable = true;
1547
+ curr = this;
1548
+ while (curr && curr.operator) {
1549
+ allInvertable && (allInvertable = curr.operator in INVERSIONS);
1550
+ curr = curr.first;
1551
+ }
1552
+ if (!allInvertable) {
1553
+ return new Parens(this).invert();
1554
+ }
1555
+ curr = this;
1556
+ while (curr && curr.operator) {
1557
+ curr.invert = !curr.invert;
1558
+ curr.operator = INVERSIONS[curr.operator];
1559
+ curr = curr.first;
1560
+ }
1561
+ return this;
1562
+ } else if (op = INVERSIONS[this.operator]) {
1563
+ this.operator = op;
1564
+ if (this.first.unwrap() instanceof Op) {
1565
+ this.first.invert();
1566
+ }
1567
+ return this;
1568
+ } else if (this.second) {
1569
+ return new Parens(this).invert();
1570
+ } else if (this.operator === '!' && (fst = this.first.unwrap()) instanceof Op && ((_ref = fst.operator) === '!' || _ref === 'in' || _ref === 'instanceof')) {
1571
+ return fst;
1572
+ } else {
1573
+ return new Op('!', this);
1574
+ }
1575
+ };
1576
+ Op.prototype.unfoldSoak = function(o) {
1577
+ var _ref;
1578
+ return ((_ref = this.operator) === '++' || _ref === '--' || _ref === 'delete') && unfoldSoak(o, this, 'first');
1579
+ };
1580
+ Op.prototype.compileNode = function(o) {
1581
+ var code;
1582
+ if (this.isUnary()) {
1583
+ return this.compileUnary(o);
1584
+ }
1585
+ if (this.isChainable() && this.first.isChainable()) {
1586
+ return this.compileChain(o);
1587
+ }
1588
+ if (this.operator === '?') {
1589
+ return this.compileExistence(o);
1590
+ }
1591
+ this.first.front = this.front;
1592
+ code = this.first.compile(o, LEVEL_OP) + ' ' + this.operator + ' ' + this.second.compile(o, LEVEL_OP);
1593
+ if (o.level <= LEVEL_OP) {
1594
+ return code;
1595
+ } else {
1596
+ return "(" + code + ")";
1597
+ }
1598
+ };
1599
+ Op.prototype.compileChain = function(o) {
1600
+ var code, fst, shared, _ref;
1601
+ _ref = this.first.second.cache(o), this.first.second = _ref[0], shared = _ref[1];
1602
+ fst = this.first.compile(o, LEVEL_OP);
1603
+ code = "" + fst + " " + (this.invert ? '&&' : '||') + " " + (shared.compile(o)) + " " + this.operator + " " + (this.second.compile(o, LEVEL_OP));
1604
+ return "(" + code + ")";
1605
+ };
1606
+ Op.prototype.compileExistence = function(o) {
1607
+ var fst, ref;
1608
+ if (this.first.isComplex()) {
1609
+ ref = o.scope.freeVariable('ref');
1610
+ fst = new Parens(new Assign(new Literal(ref), this.first));
1611
+ } else {
1612
+ fst = this.first;
1613
+ ref = fst.compile(o);
1614
+ }
1615
+ return new Existence(fst).compile(o) + (" ? " + ref + " : " + (this.second.compile(o, LEVEL_LIST)));
1616
+ };
1617
+ Op.prototype.compileUnary = function(o) {
1618
+ var op, parts;
1619
+ parts = [op = this.operator];
1620
+ if ((op === 'new' || op === 'typeof' || op === 'delete') || (op === '+' || op === '-') && this.first instanceof Op && this.first.operator === op) {
1621
+ parts.push(' ');
1622
+ }
1623
+ parts.push(this.first.compile(o, LEVEL_OP));
1624
+ if (this.flip) {
1625
+ parts.reverse();
1626
+ }
1627
+ return parts.join('');
1628
+ };
1629
+ Op.prototype.toString = function(idt) {
1630
+ return Op.__super__.toString.call(this, idt, this.constructor.name + ' ' + this.operator);
1631
+ };
1632
+ return Op;
1633
+ })();
1634
+ exports.In = In = (function() {
1635
+ __extends(In, Base);
1636
+ function In(object, array) {
1637
+ this.object = object;
1638
+ this.array = array;
1639
+ }
1640
+ In.prototype.children = ['object', 'array'];
1641
+ In.prototype.invert = NEGATE;
1642
+ In.prototype.compileNode = function(o) {
1643
+ if (this.array instanceof Value && this.array.isArray()) {
1644
+ return this.compileOrTest(o);
1645
+ } else {
1646
+ return this.compileLoopTest(o);
1647
+ }
1648
+ };
1649
+ In.prototype.compileOrTest = function(o) {
1650
+ var cmp, cnj, i, item, ref, sub, tests, _ref, _ref2;
1651
+ _ref = this.object.cache(o, LEVEL_OP), sub = _ref[0], ref = _ref[1];
1652
+ _ref2 = this.negated ? [' !== ', ' && '] : [' === ', ' || '], cmp = _ref2[0], cnj = _ref2[1];
1653
+ tests = (function() {
1654
+ var _len, _ref, _results;
1655
+ _ref = this.array.base.objects;
1656
+ _results = [];
1657
+ for (i = 0, _len = _ref.length; i < _len; i++) {
1658
+ item = _ref[i];
1659
+ _results.push((i ? ref : sub) + cmp + item.compile(o, LEVEL_OP));
1660
+ }
1661
+ return _results;
1662
+ }).call(this);
1663
+ tests = tests.join(cnj);
1664
+ if (o.level < LEVEL_OP) {
1665
+ return tests;
1666
+ } else {
1667
+ return "(" + tests + ")";
1668
+ }
1669
+ };
1670
+ In.prototype.compileLoopTest = function(o) {
1671
+ var code, ref, sub, _ref;
1672
+ _ref = this.object.cache(o, LEVEL_LIST), sub = _ref[0], ref = _ref[1];
1673
+ code = utility('indexOf') + (".call(" + (this.array.compile(o, LEVEL_LIST)) + ", " + ref + ") ") + (this.negated ? '< 0' : '>= 0');
1674
+ if (sub === ref) {
1675
+ return code;
1676
+ }
1677
+ code = sub + ', ' + code;
1678
+ if (o.level < LEVEL_LIST) {
1679
+ return code;
1680
+ } else {
1681
+ return "(" + code + ")";
1682
+ }
1683
+ };
1684
+ In.prototype.toString = function(idt) {
1685
+ return In.__super__.toString.call(this, idt, this.constructor.name + (this.negated ? '!' : ''));
1686
+ };
1687
+ return In;
1688
+ })();
1689
+ exports.Try = Try = (function() {
1690
+ __extends(Try, Base);
1691
+ function Try(attempt, error, recovery, ensure) {
1692
+ this.attempt = attempt;
1693
+ this.error = error;
1694
+ this.recovery = recovery;
1695
+ this.ensure = ensure;
1696
+ }
1697
+ Try.prototype.children = ['attempt', 'recovery', 'ensure'];
1698
+ Try.prototype.isStatement = YES;
1699
+ Try.prototype.jumps = function(o) {
1700
+ var _ref;
1701
+ return this.attempt.jumps(o) || ((_ref = this.recovery) != null ? _ref.jumps(o) : void 0);
1702
+ };
1703
+ Try.prototype.makeReturn = function() {
1704
+ if (this.attempt) {
1705
+ this.attempt = this.attempt.makeReturn();
1706
+ }
1707
+ if (this.recovery) {
1708
+ this.recovery = this.recovery.makeReturn();
1709
+ }
1710
+ return this;
1711
+ };
1712
+ Try.prototype.compileNode = function(o) {
1713
+ var catchPart, errorPart;
1714
+ o.indent += TAB;
1715
+ errorPart = this.error ? " (" + (this.error.compile(o)) + ") " : ' ';
1716
+ catchPart = this.recovery ? " catch" + errorPart + "{\n" + (this.recovery.compile(o, LEVEL_TOP)) + "\n" + this.tab + "}" : !(this.ensure || this.recovery) ? ' catch (_e) {}' : void 0;
1717
+ return ("" + this.tab + "try {\n" + (this.attempt.compile(o, LEVEL_TOP)) + "\n" + this.tab + "}" + (catchPart || '')) + (this.ensure ? " finally {\n" + (this.ensure.compile(o, LEVEL_TOP)) + "\n" + this.tab + "}" : '');
1718
+ };
1719
+ return Try;
1720
+ })();
1721
+ exports.Throw = Throw = (function() {
1722
+ __extends(Throw, Base);
1723
+ function Throw(expression) {
1724
+ this.expression = expression;
1725
+ }
1726
+ Throw.prototype.children = ['expression'];
1727
+ Throw.prototype.isStatement = YES;
1728
+ Throw.prototype.jumps = NO;
1729
+ Throw.prototype.makeReturn = THIS;
1730
+ Throw.prototype.compileNode = function(o) {
1731
+ return this.tab + ("throw " + (this.expression.compile(o)) + ";");
1732
+ };
1733
+ return Throw;
1734
+ })();
1735
+ exports.Existence = Existence = (function() {
1736
+ __extends(Existence, Base);
1737
+ function Existence(expression) {
1738
+ this.expression = expression;
1739
+ }
1740
+ Existence.prototype.children = ['expression'];
1741
+ Existence.prototype.invert = NEGATE;
1742
+ Existence.prototype.compileNode = function(o) {
1743
+ var code, sym;
1744
+ code = this.expression.compile(o, LEVEL_OP);
1745
+ code = IDENTIFIER.test(code) && !o.scope.check(code) ? this.negated ? "typeof " + code + " == \"undefined\" || " + code + " === null" : "typeof " + code + " != \"undefined\" && " + code + " !== null" : (sym = this.negated ? '==' : '!=', "" + code + " " + sym + " null");
1746
+ if (o.level <= LEVEL_COND) {
1747
+ return code;
1748
+ } else {
1749
+ return "(" + code + ")";
1750
+ }
1751
+ };
1752
+ return Existence;
1753
+ })();
1754
+ exports.Parens = Parens = (function() {
1755
+ __extends(Parens, Base);
1756
+ function Parens(body) {
1757
+ this.body = body;
1758
+ }
1759
+ Parens.prototype.children = ['body'];
1760
+ Parens.prototype.unwrap = function() {
1761
+ return this.body;
1762
+ };
1763
+ Parens.prototype.isComplex = function() {
1764
+ return this.body.isComplex();
1765
+ };
1766
+ Parens.prototype.makeReturn = function() {
1767
+ return this.body.makeReturn();
1768
+ };
1769
+ Parens.prototype.compileNode = function(o) {
1770
+ var bare, code, expr;
1771
+ expr = this.body.unwrap();
1772
+ if (expr instanceof Value && expr.isAtomic()) {
1773
+ expr.front = this.front;
1774
+ return expr.compile(o);
1775
+ }
1776
+ code = expr.compile(o, LEVEL_PAREN);
1777
+ bare = o.level < LEVEL_OP && (expr instanceof Op || expr instanceof Call || (expr instanceof For && expr.returns));
1778
+ if (bare) {
1779
+ return code;
1780
+ } else {
1781
+ return "(" + code + ")";
1782
+ }
1783
+ };
1784
+ return Parens;
1785
+ })();
1786
+ exports.For = For = (function() {
1787
+ __extends(For, Base);
1788
+ function For(body, source) {
1789
+ var _ref;
1790
+ this.source = source.source, this.guard = source.guard, this.step = source.step, this.name = source.name, this.index = source.index;
1791
+ this.body = Expressions.wrap([body]);
1792
+ this.own = !!source.own;
1793
+ this.object = !!source.object;
1794
+ if (this.object) {
1795
+ _ref = [this.index, this.name], this.name = _ref[0], this.index = _ref[1];
1796
+ }
1797
+ if (this.index instanceof Value) {
1798
+ throw SyntaxError('index cannot be a pattern matching expression');
1799
+ }
1800
+ this.range = this.source instanceof Value && this.source.base instanceof Range && !this.source.properties.length;
1801
+ this.pattern = this.name instanceof Value;
1802
+ if (this.range && this.index) {
1803
+ throw SyntaxError('indexes do not apply to range loops');
1804
+ }
1805
+ if (this.range && this.pattern) {
1806
+ throw SyntaxError('cannot pattern match over range loops');
1807
+ }
1808
+ this.returns = false;
1809
+ }
1810
+ For.prototype.children = ['body', 'source', 'guard', 'step'];
1811
+ For.prototype.isStatement = YES;
1812
+ For.prototype.jumps = While.prototype.jumps;
1813
+ For.prototype.makeReturn = function() {
1814
+ this.returns = true;
1815
+ return this;
1816
+ };
1817
+ For.prototype.compileNode = function(o) {
1818
+ var body, defPart, forPart, guardPart, idt1, index, ivar, lastJumps, lvar, name, namePart, ref, resultPart, returnResult, rvar, scope, source, stepPart, svar, varPart, _ref;
1819
+ body = Expressions.wrap([this.body]);
1820
+ lastJumps = (_ref = last(body.expressions)) != null ? _ref.jumps() : void 0;
1821
+ if (lastJumps && lastJumps instanceof Return) {
1822
+ this.returns = false;
1823
+ }
1824
+ source = this.range ? this.source.base : this.source;
1825
+ scope = o.scope;
1826
+ name = this.name && this.name.compile(o, LEVEL_LIST);
1827
+ index = this.index && this.index.compile(o, LEVEL_LIST);
1828
+ if (name && !this.pattern) {
1829
+ scope.find(name, {
1830
+ immediate: true
1831
+ });
1832
+ }
1833
+ if (index) {
1834
+ scope.find(index, {
1835
+ immediate: true
1836
+ });
1837
+ }
1838
+ if (this.returns) {
1839
+ rvar = scope.freeVariable('results');
1840
+ }
1841
+ ivar = (this.range ? name : index) || scope.freeVariable('i');
1842
+ if (this.pattern) {
1843
+ name = ivar;
1844
+ }
1845
+ varPart = '';
1846
+ guardPart = '';
1847
+ defPart = '';
1848
+ idt1 = this.tab + TAB;
1849
+ if (this.range) {
1850
+ forPart = source.compile(merge(o, {
1851
+ index: ivar,
1852
+ step: this.step
1853
+ }));
1854
+ } else {
1855
+ svar = this.source.compile(o, LEVEL_LIST);
1856
+ if ((name || this.own) && !IDENTIFIER.test(svar)) {
1857
+ defPart = "" + this.tab + (ref = scope.freeVariable('ref')) + " = " + svar + ";\n";
1858
+ svar = ref;
1859
+ }
1860
+ if (name && !this.pattern) {
1861
+ namePart = "" + name + " = " + svar + "[" + ivar + "]";
1862
+ }
1863
+ if (!this.object) {
1864
+ lvar = scope.freeVariable('len');
1865
+ stepPart = this.step ? "" + ivar + " += " + (this.step.compile(o, LEVEL_OP)) : "" + ivar + "++";
1866
+ forPart = "" + ivar + " = 0, " + lvar + " = " + svar + ".length; " + ivar + " < " + lvar + "; " + stepPart;
1867
+ }
1868
+ }
1869
+ if (this.returns) {
1870
+ resultPart = "" + this.tab + rvar + " = [];\n";
1871
+ returnResult = "\n" + this.tab + "return " + rvar + ";";
1872
+ body = Push.wrap(rvar, body);
1873
+ }
1874
+ if (this.guard) {
1875
+ body = Expressions.wrap([new If(this.guard, body)]);
1876
+ }
1877
+ if (this.pattern) {
1878
+ body.expressions.unshift(new Assign(this.name, new Literal("" + svar + "[" + ivar + "]")));
1879
+ }
1880
+ defPart += this.pluckDirectCall(o, body);
1881
+ if (namePart) {
1882
+ varPart = "\n" + idt1 + namePart + ";";
1883
+ }
1884
+ if (this.object) {
1885
+ forPart = "" + ivar + " in " + svar;
1886
+ if (this.own) {
1887
+ guardPart = "\n" + idt1 + "if (!" + (utility('hasProp')) + ".call(" + svar + ", " + ivar + ")) continue;";
1888
+ }
1889
+ }
1890
+ body = body.compile(merge(o, {
1891
+ indent: idt1
1892
+ }), LEVEL_TOP);
1893
+ if (body) {
1894
+ body = '\n' + body + '\n';
1895
+ }
1896
+ return "" + defPart + (resultPart || '') + this.tab + "for (" + forPart + ") {" + guardPart + varPart + body + this.tab + "}" + (returnResult || '');
1897
+ };
1898
+ For.prototype.pluckDirectCall = function(o, body) {
1899
+ var base, defs, expr, fn, idx, ref, val, _len, _ref, _ref2, _ref3, _ref4, _ref5, _ref6;
1900
+ defs = '';
1901
+ _ref = body.expressions;
1902
+ for (idx = 0, _len = _ref.length; idx < _len; idx++) {
1903
+ expr = _ref[idx];
1904
+ expr = expr.unwrapAll();
1905
+ if (!(expr instanceof Call)) {
1906
+ continue;
1907
+ }
1908
+ val = expr.variable.unwrapAll();
1909
+ if (!((val instanceof Code) || (val instanceof Value && ((_ref2 = val.base) != null ? _ref2.unwrapAll() : void 0) instanceof Code && val.properties.length === 1 && ((_ref3 = (_ref4 = val.properties[0].name) != null ? _ref4.value : void 0) === 'call' || _ref3 === 'apply')))) {
1910
+ continue;
1911
+ }
1912
+ fn = ((_ref5 = val.base) != null ? _ref5.unwrapAll() : void 0) || val;
1913
+ ref = new Literal(o.scope.freeVariable('fn'));
1914
+ base = new Value(ref);
1915
+ if (val.base) {
1916
+ _ref6 = [base, val], val.base = _ref6[0], base = _ref6[1];
1917
+ args.unshift(new Literal('this'));
1918
+ }
1919
+ body.expressions[idx] = new Call(base, expr.args);
1920
+ defs += this.tab + new Assign(ref, fn).compile(o, LEVEL_TOP) + ';\n';
1921
+ }
1922
+ return defs;
1923
+ };
1924
+ return For;
1925
+ })();
1926
+ exports.Switch = Switch = (function() {
1927
+ __extends(Switch, Base);
1928
+ function Switch(subject, cases, otherwise) {
1929
+ this.subject = subject;
1930
+ this.cases = cases;
1931
+ this.otherwise = otherwise;
1932
+ }
1933
+ Switch.prototype.children = ['subject', 'cases', 'otherwise'];
1934
+ Switch.prototype.isStatement = YES;
1935
+ Switch.prototype.jumps = function(o) {
1936
+ var block, conds, _i, _len, _ref, _ref2, _ref3;
1937
+ if (o == null) {
1938
+ o = {
1939
+ block: true
1940
+ };
1941
+ }
1942
+ _ref = this.cases;
1943
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
1944
+ _ref2 = _ref[_i], conds = _ref2[0], block = _ref2[1];
1945
+ if (block.jumps(o)) {
1946
+ return block;
1947
+ }
1948
+ }
1949
+ return (_ref3 = this.otherwise) != null ? _ref3.jumps(o) : void 0;
1950
+ };
1951
+ Switch.prototype.makeReturn = function() {
1952
+ var pair, _i, _len, _ref, _ref2;
1953
+ _ref = this.cases;
1954
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
1955
+ pair = _ref[_i];
1956
+ pair[1].makeReturn();
1957
+ }
1958
+ if ((_ref2 = this.otherwise) != null) {
1959
+ _ref2.makeReturn();
1960
+ }
1961
+ return this;
1962
+ };
1963
+ Switch.prototype.compileNode = function(o) {
1964
+ var block, body, code, cond, conditions, expr, i, idt1, idt2, jumper, _i, _len, _len2, _ref, _ref2, _ref3, _ref4;
1965
+ idt1 = o.indent + TAB;
1966
+ idt2 = o.indent = idt1 + TAB;
1967
+ code = this.tab + ("switch (" + (((_ref = this.subject) != null ? _ref.compile(o, LEVEL_PAREN) : void 0) || false) + ") {\n");
1968
+ _ref2 = this.cases;
1969
+ for (i = 0, _len = _ref2.length; i < _len; i++) {
1970
+ _ref3 = _ref2[i], conditions = _ref3[0], block = _ref3[1];
1971
+ _ref4 = flatten([conditions]);
1972
+ for (_i = 0, _len2 = _ref4.length; _i < _len2; _i++) {
1973
+ cond = _ref4[_i];
1974
+ if (!this.subject) {
1975
+ cond = cond.invert();
1976
+ }
1977
+ code += idt1 + ("case " + (cond.compile(o, LEVEL_PAREN)) + ":\n");
1978
+ }
1979
+ if (body = block.compile(o, LEVEL_TOP)) {
1980
+ code += body + '\n';
1981
+ }
1982
+ if (i === this.cases.length - 1 && !this.otherwise) {
1983
+ break;
1984
+ }
1985
+ expr = this.lastNonComment(block.expressions);
1986
+ jumper = expr.jumps();
1987
+ if (!expr || !jumper || (jumper instanceof Literal && jumper.value === 'debugger')) {
1988
+ code += idt2 + 'break;\n';
1989
+ }
1990
+ }
1991
+ if (this.otherwise && this.otherwise.expressions.length) {
1992
+ code += idt1 + ("default:\n" + (this.otherwise.compile(o, LEVEL_TOP)) + "\n");
1993
+ }
1994
+ return code + this.tab + '}';
1995
+ };
1996
+ return Switch;
1997
+ })();
1998
+ exports.If = If = (function() {
1999
+ __extends(If, Base);
2000
+ function If(condition, body, options) {
2001
+ this.body = body;
2002
+ if (options == null) {
2003
+ options = {};
2004
+ }
2005
+ this.condition = options.type === 'unless' ? condition.invert() : condition;
2006
+ this.elseBody = null;
2007
+ this.isChain = false;
2008
+ this.soak = options.soak;
2009
+ }
2010
+ If.prototype.children = ['condition', 'body', 'elseBody'];
2011
+ If.prototype.bodyNode = function() {
2012
+ var _ref;
2013
+ return (_ref = this.body) != null ? _ref.unwrap() : void 0;
2014
+ };
2015
+ If.prototype.elseBodyNode = function() {
2016
+ var _ref;
2017
+ return (_ref = this.elseBody) != null ? _ref.unwrap() : void 0;
2018
+ };
2019
+ If.prototype.addElse = function(elseBody) {
2020
+ if (this.isChain) {
2021
+ this.elseBodyNode().addElse(elseBody);
2022
+ } else {
2023
+ this.isChain = elseBody instanceof If;
2024
+ this.elseBody = this.ensureExpressions(elseBody);
2025
+ }
2026
+ return this;
2027
+ };
2028
+ If.prototype.isStatement = function(o) {
2029
+ var _ref;
2030
+ return (o != null ? o.level : void 0) === LEVEL_TOP || this.bodyNode().isStatement(o) || ((_ref = this.elseBodyNode()) != null ? _ref.isStatement(o) : void 0);
2031
+ };
2032
+ If.prototype.jumps = function(o) {
2033
+ var _ref;
2034
+ return this.body.jumps(o) || ((_ref = this.elseBody) != null ? _ref.jumps(o) : void 0);
2035
+ };
2036
+ If.prototype.compileNode = function(o) {
2037
+ if (this.isStatement(o)) {
2038
+ return this.compileStatement(o);
2039
+ } else {
2040
+ return this.compileExpression(o);
2041
+ }
2042
+ };
2043
+ If.prototype.makeReturn = function() {
2044
+ this.body && (this.body = new Expressions([this.body.makeReturn()]));
2045
+ this.elseBody && (this.elseBody = new Expressions([this.elseBody.makeReturn()]));
2046
+ return this;
2047
+ };
2048
+ If.prototype.ensureExpressions = function(node) {
2049
+ if (node instanceof Expressions) {
2050
+ return node;
2051
+ } else {
2052
+ return new Expressions([node]);
2053
+ }
2054
+ };
2055
+ If.prototype.compileStatement = function(o) {
2056
+ var body, child, cond, ifPart;
2057
+ child = del(o, 'chainChild');
2058
+ cond = this.condition.compile(o, LEVEL_PAREN);
2059
+ o.indent += TAB;
2060
+ body = this.ensureExpressions(this.body).compile(o);
2061
+ if (body) {
2062
+ body = "\n" + body + "\n" + this.tab;
2063
+ }
2064
+ ifPart = "if (" + cond + ") {" + body + "}";
2065
+ if (!child) {
2066
+ ifPart = this.tab + ifPart;
2067
+ }
2068
+ if (!this.elseBody) {
2069
+ return ifPart;
2070
+ }
2071
+ return ifPart + ' else ' + (this.isChain ? (o.indent = this.tab, o.chainChild = true, this.elseBody.unwrap().compile(o, LEVEL_TOP)) : "{\n" + (this.elseBody.compile(o, LEVEL_TOP)) + "\n" + this.tab + "}");
2072
+ };
2073
+ If.prototype.compileExpression = function(o) {
2074
+ var alt, body, code, cond;
2075
+ cond = this.condition.compile(o, LEVEL_COND);
2076
+ body = this.bodyNode().compile(o, LEVEL_LIST);
2077
+ alt = this.elseBodyNode() ? this.elseBodyNode().compile(o, LEVEL_LIST) : 'void 0';
2078
+ code = "" + cond + " ? " + body + " : " + alt;
2079
+ if (o.level >= LEVEL_COND) {
2080
+ return "(" + code + ")";
2081
+ } else {
2082
+ return code;
2083
+ }
2084
+ };
2085
+ If.prototype.unfoldSoak = function() {
2086
+ return this.soak && this;
2087
+ };
2088
+ return If;
2089
+ })();
2090
+ Push = {
2091
+ wrap: function(name, exps) {
2092
+ if (exps.isEmpty() || last(exps.expressions).jumps()) {
2093
+ return exps;
2094
+ }
2095
+ return exps.push(new Call(new Value(new Literal(name), [new Access(new Literal('push'))]), [exps.pop()]));
2096
+ }
2097
+ };
2098
+ Closure = {
2099
+ wrap: function(expressions, statement, noReturn) {
2100
+ var args, call, func, mentionsArgs, meth;
2101
+ if (expressions.jumps()) {
2102
+ return expressions;
2103
+ }
2104
+ func = new Code([], Expressions.wrap([expressions]));
2105
+ args = [];
2106
+ if ((mentionsArgs = expressions.contains(this.literalArgs)) || (expressions.contains(this.literalThis))) {
2107
+ meth = new Literal(mentionsArgs ? 'apply' : 'call');
2108
+ args = [new Literal('this')];
2109
+ if (mentionsArgs) {
2110
+ args.push(new Literal('arguments'));
2111
+ }
2112
+ func = new Value(func, [new Access(meth)]);
2113
+ }
2114
+ func.noReturn = noReturn;
2115
+ call = new Call(func, args);
2116
+ if (statement) {
2117
+ return Expressions.wrap([call]);
2118
+ } else {
2119
+ return call;
2120
+ }
2121
+ },
2122
+ literalArgs: function(node) {
2123
+ return node instanceof Literal && node.value === 'arguments' && !node.asKey;
2124
+ },
2125
+ literalThis: function(node) {
2126
+ return (node instanceof Literal && node.value === 'this' && !node.asKey) || (node instanceof Code && node.bound);
2127
+ }
2128
+ };
2129
+ unfoldSoak = function(o, parent, name) {
2130
+ var ifn;
2131
+ if (!(ifn = parent[name].unfoldSoak(o))) {
2132
+ return;
2133
+ }
2134
+ parent[name] = ifn.body;
2135
+ ifn.body = new Value(parent);
2136
+ return ifn;
2137
+ };
2138
+ UTILITIES = {
2139
+ "extends": 'function(child, parent) {\n for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }\n function ctor() { this.constructor = child; }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor;\n child.__super__ = parent.prototype;\n return child;\n}',
2140
+ bind: 'function(fn, me){ return function(){ return fn.apply(me, arguments); }; }',
2141
+ indexOf: 'Array.prototype.indexOf || function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === item) return i;\n }\n return -1;\n}',
2142
+ hasProp: 'Object.prototype.hasOwnProperty',
2143
+ slice: 'Array.prototype.slice'
2144
+ };
2145
+ LEVEL_TOP = 1;
2146
+ LEVEL_PAREN = 2;
2147
+ LEVEL_LIST = 3;
2148
+ LEVEL_COND = 4;
2149
+ LEVEL_OP = 5;
2150
+ LEVEL_ACCESS = 6;
2151
+ TAB = ' ';
2152
+ TRAILING_WHITESPACE = /[ \t]+$/gm;
2153
+ IDENTIFIER = /^[$A-Za-z_][$\w]*$/;
2154
+ SIMPLENUM = /^[+-]?\d+$/;
2155
+ IS_STRING = /^['"]/;
2156
+ utility = function(name) {
2157
+ var ref;
2158
+ ref = "__" + name;
2159
+ Scope.root.assign(ref, UTILITIES[name]);
2160
+ return ref;
2161
+ };
2162
+ multident = function(code, tab) {
2163
+ return code.replace(/\n/g, '$&' + tab);
2164
+ };
2165
+ }).call(this);