opal 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (734) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +19 -0
  3. data/.gitmodules +1 -1
  4. data/.jshintrc +1 -2
  5. data/.rspec +1 -2
  6. data/.travis.yml +42 -20
  7. data/.yardopts +3 -1
  8. data/CHANGELOG.md +164 -1
  9. data/Gemfile +16 -9
  10. data/HACKING.md +4 -2
  11. data/README.md +11 -11
  12. data/Rakefile +1 -1
  13. data/appveyor.yml +29 -0
  14. data/benchmark/bm_constant_lookup_big.rb +799 -0
  15. data/benchmark/bm_constant_lookup_small.rb +59 -0
  16. data/benchmark/bm_module_definition_big.rb +400 -0
  17. data/benchmark/bm_module_definition_small.rb +30 -0
  18. data/benchmark-ips/bm_case.rb +33 -0
  19. data/benchmark-ips/bm_constants_lookup.rb +13 -0
  20. data/benchmark-ips/bm_is_number.rb +29 -0
  21. data/benchmark-ips/bm_symbol_to_proc.rb +19 -0
  22. data/bin +1 -0
  23. data/docs/compiled_ruby.md +16 -14
  24. data/docs/faq.md +3 -3
  25. data/docs/headless_chrome.md +105 -0
  26. data/docs/rspec.md +4 -20
  27. data/docs/unsupported_features.md +6 -4
  28. data/examples/rack/Gemfile +1 -0
  29. data/examples/rack/Gemfile.lock +11 -7
  30. data/examples/rack/app/application.rb +14 -3
  31. data/examples/rack/app/user.rb +2 -0
  32. data/examples/rack/config.ru +1 -1
  33. data/examples/rack/index.html.erb +1 -0
  34. data/examples/sinatra/Gemfile +1 -1
  35. data/examples/sinatra/Gemfile.lock +8 -11
  36. data/examples/sinatra/app/application.rb +2 -0
  37. data/{bin → exe}/opal +4 -2
  38. data/{bin → exe}/opal-repl +23 -1
  39. data/lib/opal/ast/builder.rb +13 -0
  40. data/lib/opal/ast/node.rb +30 -0
  41. data/lib/opal/builder.rb +82 -17
  42. data/lib/opal/builder_processors.rb +9 -7
  43. data/lib/opal/cli.rb +45 -59
  44. data/lib/opal/cli_options.rb +19 -12
  45. data/lib/opal/cli_runners/applescript.rb +3 -4
  46. data/lib/opal/cli_runners/chrome.js +135 -0
  47. data/lib/opal/cli_runners/chrome.rb +100 -0
  48. data/lib/opal/cli_runners/nashorn.rb +1 -1
  49. data/lib/opal/cli_runners/node_modules/.bin/chrome-remote-interface +1 -0
  50. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/LICENSE +18 -0
  51. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/README.md +843 -0
  52. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/bin/client.js +326 -0
  53. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/chrome-remote-interface.js +11 -0
  54. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/index.js +39 -0
  55. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/api.js +84 -0
  56. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/chrome.js +289 -0
  57. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/defaults.js +4 -0
  58. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/devtools.js +245 -0
  59. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/external-request.js +23 -0
  60. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/protocol.json +13303 -0
  61. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/lib/websocket-wrapper.js +32 -0
  62. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/package.json +128 -0
  63. data/lib/opal/cli_runners/node_modules/chrome-remote-interface/webpack.config.js +55 -0
  64. data/lib/opal/cli_runners/node_modules/commander/Readme.md +195 -0
  65. data/lib/opal/cli_runners/node_modules/commander/index.js +851 -0
  66. data/lib/opal/cli_runners/node_modules/commander/package.json +92 -0
  67. data/{stdlib/nodejs/node_modules/js-yaml/node_modules/argparse → lib/opal/cli_runners/node_modules/ultron}/LICENSE +7 -6
  68. data/lib/opal/cli_runners/node_modules/ultron/index.js +138 -0
  69. data/lib/opal/cli_runners/node_modules/ultron/package.json +112 -0
  70. data/{stdlib/nodejs/node_modules/js-yaml → lib/opal/cli_runners/node_modules/ws}/LICENSE +6 -6
  71. data/lib/opal/cli_runners/node_modules/ws/README.md +259 -0
  72. data/lib/opal/cli_runners/node_modules/ws/SECURITY.md +33 -0
  73. data/lib/opal/cli_runners/node_modules/ws/index.js +15 -0
  74. data/lib/opal/cli_runners/node_modules/ws/lib/BufferUtil.fallback.js +56 -0
  75. data/lib/opal/cli_runners/node_modules/ws/lib/BufferUtil.js +15 -0
  76. data/lib/opal/cli_runners/node_modules/ws/lib/ErrorCodes.js +28 -0
  77. data/lib/opal/cli_runners/node_modules/ws/lib/EventTarget.js +158 -0
  78. data/lib/opal/cli_runners/node_modules/ws/lib/Extensions.js +69 -0
  79. data/lib/opal/cli_runners/node_modules/ws/lib/PerMessageDeflate.js +339 -0
  80. data/lib/opal/cli_runners/node_modules/ws/lib/Receiver.js +520 -0
  81. data/lib/opal/cli_runners/node_modules/ws/lib/Sender.js +438 -0
  82. data/lib/opal/cli_runners/node_modules/ws/lib/Validation.fallback.js +9 -0
  83. data/lib/opal/cli_runners/node_modules/ws/lib/Validation.js +17 -0
  84. data/lib/opal/cli_runners/node_modules/ws/lib/WebSocket.js +705 -0
  85. data/lib/opal/cli_runners/node_modules/ws/lib/WebSocketServer.js +336 -0
  86. data/lib/opal/cli_runners/node_modules/ws/package.json +122 -0
  87. data/lib/opal/cli_runners/nodejs.rb +4 -2
  88. data/lib/opal/cli_runners/package.json +5 -0
  89. data/lib/opal/cli_runners/server.rb +1 -1
  90. data/lib/opal/cli_runners.rb +2 -1
  91. data/lib/opal/compiler.rb +136 -95
  92. data/lib/opal/config.rb +114 -36
  93. data/lib/opal/deprecations.rb +18 -0
  94. data/lib/opal/eof_content.rb +36 -0
  95. data/lib/opal/erb.rb +1 -0
  96. data/lib/opal/errors.rb +1 -0
  97. data/lib/opal/fragment.rb +1 -0
  98. data/lib/opal/nodes/arglist.rb +2 -1
  99. data/lib/opal/nodes/args/initialize_kwargs.rb +1 -0
  100. data/lib/opal/nodes/args/kwarg.rb +9 -7
  101. data/lib/opal/nodes/args/kwoptarg.rb +13 -8
  102. data/lib/opal/nodes/args/kwrestarg.rb +5 -5
  103. data/lib/opal/nodes/args/mlhsarg.rb +3 -2
  104. data/lib/opal/nodes/args/normarg.rb +6 -7
  105. data/lib/opal/nodes/args/optarg.rb +5 -7
  106. data/lib/opal/nodes/args/post_args.rb +6 -5
  107. data/lib/opal/nodes/args/post_kwargs.rb +1 -0
  108. data/lib/opal/nodes/args/restarg.rb +7 -7
  109. data/lib/opal/nodes/array.rb +1 -0
  110. data/lib/opal/nodes/base.rb +24 -3
  111. data/lib/opal/nodes/call.rb +168 -155
  112. data/lib/opal/nodes/call_special.rb +37 -214
  113. data/lib/opal/nodes/case.rb +36 -22
  114. data/lib/opal/nodes/class.rb +4 -3
  115. data/lib/opal/nodes/constants.rb +28 -48
  116. data/lib/opal/nodes/csend.rb +25 -0
  117. data/lib/opal/nodes/def.rb +57 -17
  118. data/lib/opal/nodes/defined.rb +170 -60
  119. data/lib/opal/nodes/definitions.rb +42 -133
  120. data/lib/opal/nodes/defs.rb +29 -0
  121. data/lib/opal/nodes/hash.rb +12 -35
  122. data/lib/opal/nodes/helpers.rb +31 -62
  123. data/lib/opal/nodes/if.rb +21 -32
  124. data/lib/opal/nodes/inline_args.rb +12 -13
  125. data/lib/opal/nodes/iter.rb +61 -36
  126. data/lib/opal/nodes/literal.rb +206 -114
  127. data/lib/opal/nodes/logic.rb +39 -57
  128. data/lib/opal/nodes/masgn.rb +20 -18
  129. data/lib/opal/nodes/module.rb +10 -11
  130. data/lib/opal/nodes/node_with_args.rb +15 -18
  131. data/lib/opal/nodes/rescue.rb +37 -70
  132. data/lib/opal/nodes/runtime_helpers.rb +8 -3
  133. data/lib/opal/nodes/scope.rb +10 -5
  134. data/lib/opal/nodes/singleton_class.rb +4 -3
  135. data/lib/opal/nodes/super.rb +112 -88
  136. data/lib/opal/nodes/top.rb +7 -2
  137. data/lib/opal/nodes/variables.rb +57 -35
  138. data/lib/opal/nodes/while.rb +11 -1
  139. data/lib/opal/nodes/yield.rb +1 -17
  140. data/lib/opal/nodes.rb +3 -1
  141. data/lib/opal/parser.rb +29 -766
  142. data/lib/opal/path_reader.rb +22 -5
  143. data/lib/opal/paths.rb +10 -4
  144. data/lib/opal/regexp_anchors.rb +1 -0
  145. data/lib/opal/rewriter.rb +64 -0
  146. data/lib/opal/rewriters/base.rb +63 -0
  147. data/lib/opal/rewriters/binary_operator_assignment.rb +141 -0
  148. data/lib/opal/rewriters/block_to_iter.rb +17 -0
  149. data/lib/opal/rewriters/break_finder.rb +34 -0
  150. data/lib/opal/rewriters/dot_js_syntax.rb +60 -0
  151. data/lib/opal/rewriters/explicit_writer_return.rb +58 -0
  152. data/lib/opal/rewriters/for_rewriter.rb +93 -0
  153. data/lib/opal/rewriters/hashes/key_duplicates_rewriter.rb +58 -0
  154. data/lib/opal/rewriters/js_reserved_words.rb +108 -0
  155. data/lib/opal/rewriters/logical_operator_assignment.rb +154 -0
  156. data/lib/opal/rewriters/opal_engine_check.rb +42 -0
  157. data/lib/opal/rewriters/rubyspec/filters_rewriter.rb +67 -0
  158. data/lib/opal/server.rb +4 -0
  159. data/lib/opal/simple_server.rb +101 -0
  160. data/lib/opal/source_map.rb +1 -1
  161. data/lib/opal/util.rb +6 -6
  162. data/lib/opal/version.rb +2 -1
  163. data/lib/opal.rb +7 -1
  164. data/lib/tilt/opal.rb +1 -0
  165. data/opal/README.md +1 -1
  166. data/opal/corelib/array.rb +184 -107
  167. data/opal/corelib/basic_object.rb +6 -6
  168. data/opal/corelib/boolean.rb +11 -3
  169. data/opal/corelib/class.rb +14 -11
  170. data/opal/corelib/comparable.rb +16 -0
  171. data/opal/corelib/complex.rb +5 -1
  172. data/opal/corelib/constants.rb +3 -3
  173. data/opal/corelib/enumerable.rb +176 -11
  174. data/opal/corelib/error.rb +35 -17
  175. data/opal/corelib/file.rb +114 -176
  176. data/opal/corelib/hash.rb +226 -13
  177. data/opal/corelib/helpers.rb +12 -15
  178. data/opal/corelib/io.rb +3 -2
  179. data/opal/corelib/kernel.rb +68 -32
  180. data/opal/corelib/marshal/read_buffer.rb +288 -150
  181. data/opal/corelib/marshal/write_buffer.rb +27 -2
  182. data/opal/corelib/method.rb +33 -13
  183. data/opal/corelib/module.rb +134 -82
  184. data/opal/corelib/nil.rb +11 -3
  185. data/opal/corelib/number.rb +220 -34
  186. data/opal/corelib/numeric.rb +3 -11
  187. data/opal/corelib/process.rb +44 -4
  188. data/opal/corelib/random/seedrandom.js.rb +15 -0
  189. data/opal/corelib/random.rb +117 -0
  190. data/opal/corelib/range.rb +147 -24
  191. data/opal/corelib/regexp.rb +82 -13
  192. data/opal/corelib/runtime.js +623 -397
  193. data/opal/corelib/string/encoding.rb +67 -31
  194. data/opal/corelib/string/inheritance.rb +1 -1
  195. data/opal/corelib/string.rb +40 -9
  196. data/opal/corelib/struct.rb +18 -3
  197. data/opal/corelib/time.rb +3 -3
  198. data/opal/corelib/variables.rb +1 -1
  199. data/opal/opal.rb +1 -0
  200. data/opal.gemspec +32 -29
  201. data/stdlib/base64.rb +4 -2
  202. data/stdlib/bigdecimal/bignumber.js.rb +1 -1
  203. data/stdlib/buffer/array.rb +4 -2
  204. data/stdlib/date.rb +64 -31
  205. data/stdlib/headless_chrome.rb +11 -0
  206. data/stdlib/json.rb +16 -4
  207. data/stdlib/nashorn/file.rb +15 -0
  208. data/stdlib/native.rb +21 -12
  209. data/stdlib/nodejs/dir.rb +1 -1
  210. data/stdlib/nodejs/file.rb +77 -23
  211. data/stdlib/nodejs/io.rb +30 -1
  212. data/stdlib/nodejs/{node_modules/js-yaml/dist/js-yaml.js → js-yaml-3-6-1.js} +815 -626
  213. data/stdlib/nodejs/kernel.rb +3 -1
  214. data/stdlib/nodejs/package.json +0 -1
  215. data/stdlib/nodejs/stacktrace.rb +179 -0
  216. data/stdlib/nodejs/yaml.rb +2 -1
  217. data/stdlib/opal/platform.rb +6 -14
  218. data/stdlib/opal-builder.rb +1 -0
  219. data/stdlib/opal-platform.rb +15 -0
  220. data/stdlib/pathname.rb +1 -1
  221. data/stdlib/rbconfig.rb +1 -1
  222. data/stdlib/securerandom.rb +1 -1
  223. data/stdlib/strscan.rb +15 -1
  224. data/stdlib/yaml.rb +1 -1
  225. data/tasks/benchmarking.rake +9 -0
  226. data/tasks/building.rake +24 -20
  227. data/tasks/linting.rake +24 -13
  228. data/tasks/testing/mspec_special_calls.rb +44 -15
  229. data/tasks/testing/opal_rspec_smoketest.Gemfile +6 -0
  230. data/tasks/testing.rake +351 -202
  231. metadata +135 -915
  232. data/lib/opal/cli_runners/phantom.js +0 -70
  233. data/lib/opal/cli_runners/phantomjs.rb +0 -28
  234. data/lib/opal/hike_path_finder.rb +0 -18
  235. data/lib/opal/nodes/for.rb +0 -48
  236. data/lib/opal/parser/grammar.rb +0 -6157
  237. data/lib/opal/parser/grammar.y +0 -2011
  238. data/lib/opal/parser/keywords.rb +0 -66
  239. data/lib/opal/parser/lexer.rb +0 -1352
  240. data/lib/opal/parser/parser_scope.rb +0 -28
  241. data/lib/opal/parser/sexp.rb +0 -90
  242. data/lib/opal/sprockets/environment.rb +0 -23
  243. data/lib/opal/sprockets/erb.rb +0 -23
  244. data/lib/opal/sprockets/path_reader.rb +0 -36
  245. data/lib/opal/sprockets/processor.rb +0 -145
  246. data/lib/opal/sprockets/server.rb +0 -133
  247. data/lib/opal/sprockets/source_map_header_patch.rb +0 -41
  248. data/lib/opal/sprockets/source_map_server.rb +0 -115
  249. data/lib/opal/sprockets.rb +0 -91
  250. data/spec/README.md +0 -10
  251. data/spec/filters/bugs/array.rb +0 -12
  252. data/spec/filters/bugs/basicobject.rb +0 -16
  253. data/spec/filters/bugs/bigdecimal.rb +0 -160
  254. data/spec/filters/bugs/class.rb +0 -10
  255. data/spec/filters/bugs/compiler_opal.rb +0 -5
  256. data/spec/filters/bugs/complex.rb +0 -3
  257. data/spec/filters/bugs/date.rb +0 -94
  258. data/spec/filters/bugs/enumerable.rb +0 -50
  259. data/spec/filters/bugs/enumerator.rb +0 -42
  260. data/spec/filters/bugs/exception.rb +0 -58
  261. data/spec/filters/bugs/float.rb +0 -33
  262. data/spec/filters/bugs/hash.rb +0 -11
  263. data/spec/filters/bugs/inheritance.rb +0 -5
  264. data/spec/filters/bugs/integer.rb +0 -28
  265. data/spec/filters/bugs/kernel.rb +0 -297
  266. data/spec/filters/bugs/language.rb +0 -275
  267. data/spec/filters/bugs/language_opal.rb +0 -88
  268. data/spec/filters/bugs/marshal.rb +0 -43
  269. data/spec/filters/bugs/method.rb +0 -84
  270. data/spec/filters/bugs/module.rb +0 -196
  271. data/spec/filters/bugs/numeric.rb +0 -127
  272. data/spec/filters/bugs/pathname.rb +0 -5
  273. data/spec/filters/bugs/proc.rb +0 -36
  274. data/spec/filters/bugs/range.rb +0 -144
  275. data/spec/filters/bugs/rational.rb +0 -4
  276. data/spec/filters/bugs/regexp.rb +0 -196
  277. data/spec/filters/bugs/set.rb +0 -42
  278. data/spec/filters/bugs/singleton.rb +0 -6
  279. data/spec/filters/bugs/string.rb +0 -101
  280. data/spec/filters/bugs/stringscanner.rb +0 -79
  281. data/spec/filters/bugs/struct.rb +0 -4
  282. data/spec/filters/bugs/time.rb +0 -29
  283. data/spec/filters/bugs/unboundmethod.rb +0 -27
  284. data/spec/filters/unsupported/array.rb +0 -163
  285. data/spec/filters/unsupported/basicobject.rb +0 -14
  286. data/spec/filters/unsupported/bignum.rb +0 -52
  287. data/spec/filters/unsupported/class.rb +0 -4
  288. data/spec/filters/unsupported/delegator.rb +0 -5
  289. data/spec/filters/unsupported/enumerable.rb +0 -11
  290. data/spec/filters/unsupported/enumerator.rb +0 -13
  291. data/spec/filters/unsupported/fixnum.rb +0 -14
  292. data/spec/filters/unsupported/float.rb +0 -43
  293. data/spec/filters/unsupported/freeze.rb +0 -53
  294. data/spec/filters/unsupported/hash.rb +0 -51
  295. data/spec/filters/unsupported/integer.rb +0 -3
  296. data/spec/filters/unsupported/kernel.rb +0 -31
  297. data/spec/filters/unsupported/language.rb +0 -17
  298. data/spec/filters/unsupported/marshal.rb +0 -46
  299. data/spec/filters/unsupported/matchdata.rb +0 -30
  300. data/spec/filters/unsupported/math.rb +0 -3
  301. data/spec/filters/unsupported/module.rb +0 -8
  302. data/spec/filters/unsupported/pathname.rb +0 -3
  303. data/spec/filters/unsupported/privacy.rb +0 -147
  304. data/spec/filters/unsupported/proc.rb +0 -3
  305. data/spec/filters/unsupported/regexp.rb +0 -59
  306. data/spec/filters/unsupported/set.rb +0 -4
  307. data/spec/filters/unsupported/singleton.rb +0 -6
  308. data/spec/filters/unsupported/string.rb +0 -537
  309. data/spec/filters/unsupported/struct.rb +0 -6
  310. data/spec/filters/unsupported/symbol.rb +0 -19
  311. data/spec/filters/unsupported/taint.rb +0 -15
  312. data/spec/filters/unsupported/thread.rb +0 -7
  313. data/spec/filters/unsupported/time.rb +0 -202
  314. data/spec/lib/builder_processors_spec.rb +0 -27
  315. data/spec/lib/builder_spec.rb +0 -72
  316. data/spec/lib/cli_runners/phantomjs_spec.rb +0 -39
  317. data/spec/lib/cli_spec.rb +0 -211
  318. data/spec/lib/compiler/call_spec.rb +0 -700
  319. data/spec/lib/compiler/pre_processed_conditionals_spec.rb +0 -87
  320. data/spec/lib/compiler_spec.rb +0 -285
  321. data/spec/lib/config_spec.rb +0 -13
  322. data/spec/lib/dependency_resolver_spec.rb +0 -40
  323. data/spec/lib/fixtures/complex_sprockets.js.rb.erb +0 -4
  324. data/spec/lib/fixtures/file_with_directives.js +0 -2
  325. data/spec/lib/fixtures/jst_file.js.jst +0 -1
  326. data/spec/lib/fixtures/no_requires.rb +0 -1
  327. data/spec/lib/fixtures/opal_file.rb +0 -2
  328. data/spec/lib/fixtures/require_tree_test.rb +0 -3
  329. data/spec/lib/fixtures/required_file.js +0 -1
  330. data/spec/lib/fixtures/required_tree_test/required_file1.rb +0 -1
  331. data/spec/lib/fixtures/required_tree_test/required_file2.rb +0 -1
  332. data/spec/lib/fixtures/requires.rb +0 -7
  333. data/spec/lib/fixtures/source_map/subfolder/other_file.rb +0 -1
  334. data/spec/lib/fixtures/source_map.rb +0 -1
  335. data/spec/lib/fixtures/sprockets_file.js.rb +0 -3
  336. data/spec/lib/fixtures/sprockets_require_tree_test.rb +0 -3
  337. data/spec/lib/hike_path_finder_spec.rb +0 -23
  338. data/spec/lib/lexer_spec.rb +0 -110
  339. data/spec/lib/parser/alias_spec.rb +0 -26
  340. data/spec/lib/parser/and_spec.rb +0 -13
  341. data/spec/lib/parser/aref_spec.rb +0 -10
  342. data/spec/lib/parser/attrasgn_spec.rb +0 -28
  343. data/spec/lib/parser/begin_spec.rb +0 -42
  344. data/spec/lib/parser/block_spec.rb +0 -12
  345. data/spec/lib/parser/break_spec.rb +0 -17
  346. data/spec/lib/parser/call_spec.rb +0 -201
  347. data/spec/lib/parser/class_spec.rb +0 -35
  348. data/spec/lib/parser/comments_spec.rb +0 -11
  349. data/spec/lib/parser/def_spec.rb +0 -109
  350. data/spec/lib/parser/if_spec.rb +0 -26
  351. data/spec/lib/parser/iter_spec.rb +0 -59
  352. data/spec/lib/parser/lambda_spec.rb +0 -219
  353. data/spec/lib/parser/literal_spec.rb +0 -118
  354. data/spec/lib/parser/masgn_spec.rb +0 -37
  355. data/spec/lib/parser/module_spec.rb +0 -27
  356. data/spec/lib/parser/not_spec.rb +0 -21
  357. data/spec/lib/parser/op_asgn1_spec.rb +0 -23
  358. data/spec/lib/parser/op_asgn2_spec.rb +0 -23
  359. data/spec/lib/parser/op_asgn_spec.rb +0 -17
  360. data/spec/lib/parser/or_spec.rb +0 -13
  361. data/spec/lib/parser/return_spec.rb +0 -22
  362. data/spec/lib/parser/sclass_spec.rb +0 -21
  363. data/spec/lib/parser/string_spec.rb +0 -286
  364. data/spec/lib/parser/super_spec.rb +0 -20
  365. data/spec/lib/parser/unary_spec.rb +0 -52
  366. data/spec/lib/parser/undef_spec.rb +0 -19
  367. data/spec/lib/parser/unless_spec.rb +0 -13
  368. data/spec/lib/parser/variables_spec.rb +0 -116
  369. data/spec/lib/parser/while_spec.rb +0 -15
  370. data/spec/lib/parser/yield_spec.rb +0 -20
  371. data/spec/lib/path_reader_spec.rb +0 -36
  372. data/spec/lib/paths_spec.rb +0 -18
  373. data/spec/lib/shared/path_finder_shared.rb +0 -19
  374. data/spec/lib/shared/path_reader_shared.rb +0 -31
  375. data/spec/lib/spec_helper.rb +0 -16
  376. data/spec/lib/sprockets/erb_spec.rb +0 -38
  377. data/spec/lib/sprockets/path_reader_spec.rb +0 -41
  378. data/spec/lib/sprockets/processor_spec.rb +0 -79
  379. data/spec/lib/sprockets/server_spec.rb +0 -102
  380. data/spec/lib/sprockets_spec.rb +0 -32
  381. data/spec/lib/tilt/opal_spec.rb +0 -37
  382. data/spec/mspec-opal/formatters.rb +0 -188
  383. data/spec/mspec-opal/runner.rb +0 -193
  384. data/spec/opal/compiler/irb_spec.rb +0 -44
  385. data/spec/opal/core/arity_spec.rb +0 -142
  386. data/spec/opal/core/array/intersection_spec.rb +0 -38
  387. data/spec/opal/core/array/minus_spec.rb +0 -38
  388. data/spec/opal/core/array/select_spec.rb +0 -14
  389. data/spec/opal/core/array/set_range_to_array_spec.rb +0 -7
  390. data/spec/opal/core/array/union_spec.rb +0 -38
  391. data/spec/opal/core/array/uniq_spec.rb +0 -49
  392. data/spec/opal/core/date_spec.rb +0 -177
  393. data/spec/opal/core/enumerable/all_break_spec.rb +0 -5
  394. data/spec/opal/core/enumerable/any_break_spec.rb +0 -5
  395. data/spec/opal/core/enumerable/collect_break_spec.rb +0 -13
  396. data/spec/opal/core/enumerable/count_break_spec.rb +0 -5
  397. data/spec/opal/core/enumerable/detect_break_spec.rb +0 -5
  398. data/spec/opal/core/enumerable/drop_while_break_spec.rb +0 -5
  399. data/spec/opal/core/enumerable/each_slice_break.rb +0 -6
  400. data/spec/opal/core/enumerable/each_with_index_break_spec.rb +0 -5
  401. data/spec/opal/core/enumerable/each_with_object_break_spec.rb +0 -5
  402. data/spec/opal/core/enumerable/find_all_break_spec.rb +0 -5
  403. data/spec/opal/core/enumerable/find_index_break_spec.rb +0 -5
  404. data/spec/opal/core/enumerable/grep_break_spec.rb +0 -5
  405. data/spec/opal/core/enumerable/max_break_spec.rb +0 -5
  406. data/spec/opal/core/enumerable/max_by_break_spec.rb +0 -5
  407. data/spec/opal/core/enumerable/min_break_spec.rb +0 -5
  408. data/spec/opal/core/enumerable/min_by_break_spec.rb +0 -5
  409. data/spec/opal/core/enumerable/none_break_spec.rb +0 -5
  410. data/spec/opal/core/enumerable/one_break_spec.rb +0 -5
  411. data/spec/opal/core/enumerable/reduce_break_spec.rb +0 -5
  412. data/spec/opal/core/enumerable/take_while_break_spec.rb +0 -5
  413. data/spec/opal/core/enumerator/with_index_spec.rb +0 -6
  414. data/spec/opal/core/exception_spec.rb +0 -20
  415. data/spec/opal/core/fixtures/class.rb +0 -124
  416. data/spec/opal/core/fixtures/class_variables.rb +0 -0
  417. data/spec/opal/core/fixtures/constants.rb +0 -33
  418. data/spec/opal/core/fixtures/require_tree_files/file 1.rb +0 -1
  419. data/spec/opal/core/fixtures/require_tree_files/file 2.rb +0 -1
  420. data/spec/opal/core/fixtures/require_tree_files/file 3.rb +0 -1
  421. data/spec/opal/core/fixtures/require_tree_files/file 4.rb +0 -1
  422. data/spec/opal/core/fixtures/require_tree_files/file 5.rb +0 -1
  423. data/spec/opal/core/fixtures/require_tree_files/nested/nested 1.rb +0 -1
  424. data/spec/opal/core/fixtures/require_tree_files/nested/nested 2.rb +0 -1
  425. data/spec/opal/core/fixtures/require_tree_files/other/other 1.rb +0 -1
  426. data/spec/opal/core/fixtures/require_tree_with_dot/file 1.rb +0 -1
  427. data/spec/opal/core/fixtures/require_tree_with_dot/file 2.rb +0 -1
  428. data/spec/opal/core/fixtures/require_tree_with_dot/file 3.rb +0 -1
  429. data/spec/opal/core/fixtures/require_tree_with_dot/index.rb +0 -3
  430. data/spec/opal/core/hash/has_value_spec.rb +0 -13
  431. data/spec/opal/core/hash/internals_spec.rb +0 -332
  432. data/spec/opal/core/helpers_spec.rb +0 -14
  433. data/spec/opal/core/kernel/Array_spec.rb +0 -10
  434. data/spec/opal/core/kernel/at_exit_spec.rb +0 -70
  435. data/spec/opal/core/kernel/block_given_spec.rb +0 -30
  436. data/spec/opal/core/kernel/class_spec.rb +0 -6
  437. data/spec/opal/core/kernel/define_singleton_method_spec.rb +0 -21
  438. data/spec/opal/core/kernel/equal_value_spec.rb +0 -12
  439. data/spec/opal/core/kernel/extend_spec.rb +0 -21
  440. data/spec/opal/core/kernel/format_spec.rb +0 -122
  441. data/spec/opal/core/kernel/freeze_spec.rb +0 -15
  442. data/spec/opal/core/kernel/instance_eval_spec.rb +0 -28
  443. data/spec/opal/core/kernel/instance_variable_defined_spec.rb +0 -15
  444. data/spec/opal/core/kernel/instance_variable_get_spec.rb +0 -14
  445. data/spec/opal/core/kernel/instance_variable_set_spec.rb +0 -10
  446. data/spec/opal/core/kernel/instance_variables_spec.rb +0 -110
  447. data/spec/opal/core/kernel/loop_spec.rb +0 -23
  448. data/spec/opal/core/kernel/match_spec.rb +0 -5
  449. data/spec/opal/core/kernel/method_spec.rb +0 -31
  450. data/spec/opal/core/kernel/methods_spec.rb +0 -25
  451. data/spec/opal/core/kernel/nil_spec.rb +0 -7
  452. data/spec/opal/core/kernel/p_spec.rb +0 -15
  453. data/spec/opal/core/kernel/printf_spec.rb +0 -11
  454. data/spec/opal/core/kernel/proc_spec.rb +0 -13
  455. data/spec/opal/core/kernel/raise_spec.rb +0 -13
  456. data/spec/opal/core/kernel/rand_spec.rb +0 -23
  457. data/spec/opal/core/kernel/require_tree_spec.rb +0 -18
  458. data/spec/opal/core/kernel/respond_to_spec.rb +0 -41
  459. data/spec/opal/core/kernel/send_spec.rb +0 -56
  460. data/spec/opal/core/kernel/sprintf_spec.rb +0 -5
  461. data/spec/opal/core/language/arguments/mlhs_arg_spec.rb +0 -19
  462. data/spec/opal/core/language/block_spec.rb +0 -538
  463. data/spec/opal/core/language/class_spec.rb +0 -55
  464. data/spec/opal/core/language/equal_spec.rb +0 -8
  465. data/spec/opal/core/language/fixtures/array.rb +0 -11
  466. data/spec/opal/core/language/fixtures/block.rb +0 -57
  467. data/spec/opal/core/language/fixtures/break.rb +0 -240
  468. data/spec/opal/core/language/fixtures/ensure.rb +0 -72
  469. data/spec/opal/core/language/fixtures/literal_lambda.rb +0 -7
  470. data/spec/opal/core/language/fixtures/metaclass.rb +0 -33
  471. data/spec/opal/core/language/fixtures/module.rb +0 -24
  472. data/spec/opal/core/language/fixtures/next.rb +0 -128
  473. data/spec/opal/core/language/fixtures/return.rb +0 -118
  474. data/spec/opal/core/language/fixtures/send.rb +0 -111
  475. data/spec/opal/core/language/fixtures/send_1.9.rb +0 -22
  476. data/spec/opal/core/language/fixtures/super.rb +0 -308
  477. data/spec/opal/core/language/fixtures/variables.rb +0 -58
  478. data/spec/opal/core/language/fixtures/yield.rb +0 -28
  479. data/spec/opal/core/language/heredoc_spec.rb +0 -42
  480. data/spec/opal/core/language/keyword_arguments_spec.rb +0 -11
  481. data/spec/opal/core/language/predefined_spec.rb +0 -138
  482. data/spec/opal/core/language/proc_spec.rb +0 -263
  483. data/spec/opal/core/language/regexp_spec.rb +0 -20
  484. data/spec/opal/core/language/rescue_spec.rb +0 -18
  485. data/spec/opal/core/language/send_spec.rb +0 -230
  486. data/spec/opal/core/language/string_spec.rb +0 -44
  487. data/spec/opal/core/language/ternary_operator_spec.rb +0 -20
  488. data/spec/opal/core/language/variables_spec.rb +0 -1366
  489. data/spec/opal/core/language/versions/array_1.9.rb +0 -39
  490. data/spec/opal/core/language/versions/block_1.9.rb +0 -0
  491. data/spec/opal/core/language/versions/break_1.9.rb +0 -0
  492. data/spec/opal/core/language/versions/case_1.9.rb +0 -20
  493. data/spec/opal/core/language/versions/def_2_0_spec.rb +0 -62
  494. data/spec/opal/core/language/versions/hash_1_9_spec.rb +0 -23
  495. data/spec/opal/core/language/versions/literal_lambda_1.9.rb +0 -143
  496. data/spec/opal/core/language/versions/not_1.9.rb +0 -22
  497. data/spec/opal/core/language/versions/send_1.9.rb +0 -241
  498. data/spec/opal/core/language/versions/symbol_1.9.rb +0 -15
  499. data/spec/opal/core/language/versions/variables_1.9.rb +0 -8
  500. data/spec/opal/core/language_spec.rb +0 -45
  501. data/spec/opal/core/marshal/dump_spec.rb +0 -53
  502. data/spec/opal/core/marshal/load_spec.rb +0 -7
  503. data/spec/opal/core/method/to_proc_spec.rb +0 -28
  504. data/spec/opal/core/module/alias_method_spec.rb +0 -28
  505. data/spec/opal/core/module/ancestors_spec.rb +0 -11
  506. data/spec/opal/core/module/append_features_spec.rb +0 -14
  507. data/spec/opal/core/module/attr_accessor_spec.rb +0 -26
  508. data/spec/opal/core/module/const_defined_spec.rb +0 -84
  509. data/spec/opal/core/module/const_get_spec.rb +0 -85
  510. data/spec/opal/core/module/const_missing_spec.rb +0 -17
  511. data/spec/opal/core/module/const_set_spec.rb +0 -64
  512. data/spec/opal/core/module/constants_spec.rb +0 -49
  513. data/spec/opal/core/module/fixtures/classes.rb +0 -444
  514. data/spec/opal/core/module/method_defined_spec.rb +0 -48
  515. data/spec/opal/core/module/method_lookup_spec.rb +0 -13
  516. data/spec/opal/core/module/module_function_spec.rb +0 -25
  517. data/spec/opal/core/module/name_spec.rb +0 -41
  518. data/spec/opal/core/module/public_method_defined_spec.rb +0 -18
  519. data/spec/opal/core/module/remove_const_spec.rb +0 -22
  520. data/spec/opal/core/module/undef_method_spec.rb +0 -66
  521. data/spec/opal/core/numeric/bit_and_spec.rb +0 -7
  522. data/spec/opal/core/numeric/bit_or_spec.rb +0 -8
  523. data/spec/opal/core/numeric/bit_xor_spec.rb +0 -6
  524. data/spec/opal/core/numeric/ceil_spec.rb +0 -8
  525. data/spec/opal/core/numeric/chr_spec.rb +0 -8
  526. data/spec/opal/core/numeric/comparison_spec.rb +0 -24
  527. data/spec/opal/core/numeric/complement_spec.rb +0 -8
  528. data/spec/opal/core/numeric/divide_spec.rb +0 -10
  529. data/spec/opal/core/numeric/eql_spec.rb +0 -9
  530. data/spec/opal/core/numeric/exponent_spec.rb +0 -33
  531. data/spec/opal/core/numeric/floor_spec.rb +0 -8
  532. data/spec/opal/core/numeric/gt_spec.rb +0 -11
  533. data/spec/opal/core/numeric/gte_spec.rb +0 -12
  534. data/spec/opal/core/numeric/integer_spec.rb +0 -9
  535. data/spec/opal/core/numeric/left_shift_spec.rb +0 -21
  536. data/spec/opal/core/numeric/lt_spec.rb +0 -11
  537. data/spec/opal/core/numeric/lte_spec.rb +0 -12
  538. data/spec/opal/core/numeric/minus_spec.rb +0 -8
  539. data/spec/opal/core/numeric/modulo_spec.rb +0 -19
  540. data/spec/opal/core/numeric/multiply_spec.rb +0 -9
  541. data/spec/opal/core/numeric/next_spec.rb +0 -9
  542. data/spec/opal/core/numeric/ord_spec.rb +0 -9
  543. data/spec/opal/core/numeric/plus_spec.rb +0 -8
  544. data/spec/opal/core/numeric/pred_spec.rb +0 -7
  545. data/spec/opal/core/numeric/right_shift_spec.rb +0 -25
  546. data/spec/opal/core/numeric/step_spec.rb +0 -11
  547. data/spec/opal/core/numeric/succ_spec.rb +0 -9
  548. data/spec/opal/core/numeric/times_spec.rb +0 -36
  549. data/spec/opal/core/numeric/to_f_spec.rb +0 -7
  550. data/spec/opal/core/numeric/to_i_spec.rb +0 -7
  551. data/spec/opal/core/numeric/to_json_spec.rb +0 -8
  552. data/spec/opal/core/numeric/to_s_spec.rb +0 -26
  553. data/spec/opal/core/numeric/uminus_spec.rb +0 -9
  554. data/spec/opal/core/numeric/upto_spec.rb +0 -19
  555. data/spec/opal/core/numeric/zero_spec.rb +0 -7
  556. data/spec/opal/core/object_id_spec.rb +0 -56
  557. data/spec/opal/core/proc/call_spec.rb +0 -21
  558. data/spec/opal/core/proc/element_reference_spec.rb +0 -21
  559. data/spec/opal/core/proc/proc_tricks_spec.rb +0 -7
  560. data/spec/opal/core/runtime/begin_spec.rb +0 -39
  561. data/spec/opal/core/runtime/block_send_spec.rb +0 -28
  562. data/spec/opal/core/runtime/block_spec.rb +0 -23
  563. data/spec/opal/core/runtime/bridged_classes_spec.rb +0 -123
  564. data/spec/opal/core/runtime/constants_spec.rb +0 -13
  565. data/spec/opal/core/runtime/donate_spec.rb +0 -53
  566. data/spec/opal/core/runtime/eval_spec.rb +0 -5
  567. data/spec/opal/core/runtime/main_methods_spec.rb +0 -27
  568. data/spec/opal/core/runtime/method_missing_spec.rb +0 -68
  569. data/spec/opal/core/runtime/method_spec.rb +0 -31
  570. data/spec/opal/core/runtime/operator_call_spec.rb +0 -13
  571. data/spec/opal/core/runtime/paren_spec.rb +0 -14
  572. data/spec/opal/core/runtime/rescue_spec.rb +0 -71
  573. data/spec/opal/core/runtime/return_spec.rb +0 -38
  574. data/spec/opal/core/runtime/send_spec.rb +0 -34
  575. data/spec/opal/core/runtime/singleton_class_spec.rb +0 -13
  576. data/spec/opal/core/runtime/super_spec.rb +0 -223
  577. data/spec/opal/core/runtime/truthy_spec.rb +0 -63
  578. data/spec/opal/core/runtime/variables_spec.rb +0 -20
  579. data/spec/opal/core/runtime_spec.rb +0 -58
  580. data/spec/opal/core/source_map_spec.rb +0 -49
  581. data/spec/opal/core/string_spec.rb +0 -32
  582. data/spec/opal/javascript_api_spec.rb +0 -16
  583. data/spec/opal/stdlib/erb/erb_spec.rb +0 -30
  584. data/spec/opal/stdlib/erb/inline_block.opalerb +0 -3
  585. data/spec/opal/stdlib/erb/quoted.opalerb +0 -1
  586. data/spec/opal/stdlib/erb/simple.opalerb +0 -1
  587. data/spec/opal/stdlib/js_spec.rb +0 -66
  588. data/spec/opal/stdlib/json/ext_spec.rb +0 -48
  589. data/spec/opal/stdlib/json/parse_spec.rb +0 -33
  590. data/spec/opal/stdlib/native/alias_native_spec.rb +0 -27
  591. data/spec/opal/stdlib/native/array_spec.rb +0 -11
  592. data/spec/opal/stdlib/native/each_spec.rb +0 -13
  593. data/spec/opal/stdlib/native/element_reference_spec.rb +0 -16
  594. data/spec/opal/stdlib/native/exposure_spec.rb +0 -33
  595. data/spec/opal/stdlib/native/ext_spec.rb +0 -19
  596. data/spec/opal/stdlib/native/hash_spec.rb +0 -51
  597. data/spec/opal/stdlib/native/initialize_spec.rb +0 -17
  598. data/spec/opal/stdlib/native/method_missing_spec.rb +0 -51
  599. data/spec/opal/stdlib/native/native_alias_spec.rb +0 -19
  600. data/spec/opal/stdlib/native/native_class_spec.rb +0 -18
  601. data/spec/opal/stdlib/native/native_module_spec.rb +0 -13
  602. data/spec/opal/stdlib/native/native_reader_spec.rb +0 -22
  603. data/spec/opal/stdlib/native/native_writer_spec.rb +0 -30
  604. data/spec/opal/stdlib/native/new_spec.rb +0 -92
  605. data/spec/opal/stdlib/native/struct_spec.rb +0 -12
  606. data/spec/opal/stdlib/promise/always_spec.rb +0 -49
  607. data/spec/opal/stdlib/promise/error_spec.rb +0 -15
  608. data/spec/opal/stdlib/promise/rescue_spec.rb +0 -53
  609. data/spec/opal/stdlib/promise/then_spec.rb +0 -79
  610. data/spec/opal/stdlib/promise/trace_spec.rb +0 -51
  611. data/spec/opal/stdlib/promise/value_spec.rb +0 -15
  612. data/spec/opal/stdlib/promise/when_spec.rb +0 -34
  613. data/spec/opal/stdlib/source_map_spec.rb +0 -8
  614. data/spec/opal/stdlib/strscan/scan_spec.rb +0 -11
  615. data/spec/opal/stdlib/template/paths_spec.rb +0 -10
  616. data/spec/opal/stdlib/thread/mutex_spec.rb +0 -40
  617. data/spec/opal/stdlib/thread/thread_queue_spec.rb +0 -32
  618. data/spec/opal/stdlib/thread/thread_spec.rb +0 -60
  619. data/spec/ruby_specs +0 -121
  620. data/spec/spec_helper.rb +0 -26
  621. data/spec/support/match_helpers.rb +0 -57
  622. data/spec/support/mspec_rspec_adapter.rb +0 -33
  623. data/spec/support/parser_helpers.rb +0 -37
  624. data/stdlib/nodejs/node_modules/js-yaml/HISTORY.md +0 -277
  625. data/stdlib/nodejs/node_modules/js-yaml/README.md +0 -288
  626. data/stdlib/nodejs/node_modules/js-yaml/bin/js-yaml.js +0 -140
  627. data/stdlib/nodejs/node_modules/js-yaml/bower.json +0 -23
  628. data/stdlib/nodejs/node_modules/js-yaml/dist/js-yaml.min.js +0 -3
  629. data/stdlib/nodejs/node_modules/js-yaml/examples/custom_types.js +0 -102
  630. data/stdlib/nodejs/node_modules/js-yaml/examples/custom_types.yml +0 -18
  631. data/stdlib/nodejs/node_modules/js-yaml/examples/dumper.js +0 -31
  632. data/stdlib/nodejs/node_modules/js-yaml/examples/dumper.json +0 -22
  633. data/stdlib/nodejs/node_modules/js-yaml/examples/sample_document.js +0 -18
  634. data/stdlib/nodejs/node_modules/js-yaml/examples/sample_document.yml +0 -197
  635. data/stdlib/nodejs/node_modules/js-yaml/index.js +0 -7
  636. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/common.js +0 -62
  637. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/dumper.js +0 -554
  638. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/exception.js +0 -25
  639. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/loader.js +0 -1581
  640. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/mark.js +0 -78
  641. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/core.js +0 -18
  642. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/default_full.js +0 -25
  643. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js +0 -28
  644. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js +0 -17
  645. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema/json.js +0 -25
  646. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/schema.js +0 -103
  647. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/binary.js +0 -133
  648. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/bool.js +0 -37
  649. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/float.js +0 -110
  650. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/int.js +0 -183
  651. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/function.js +0 -85
  652. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +0 -84
  653. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +0 -27
  654. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/map.js +0 -8
  655. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/merge.js +0 -12
  656. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/null.js +0 -36
  657. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/omap.js +0 -56
  658. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/pairs.js +0 -61
  659. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/seq.js +0 -8
  660. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/set.js +0 -33
  661. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/str.js +0 -8
  662. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +0 -98
  663. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml/type.js +0 -61
  664. data/stdlib/nodejs/node_modules/js-yaml/lib/js-yaml.js +0 -39
  665. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/HISTORY.md +0 -115
  666. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/README.md +0 -239
  667. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/arguments.js +0 -36
  668. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/choice.js +0 -22
  669. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/constants.js +0 -59
  670. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/help.js +0 -13
  671. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/nargs.js +0 -33
  672. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/parents.js +0 -28
  673. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/prefix_chars.js +0 -23
  674. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/sub_commands.js +0 -49
  675. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/sum.js +0 -35
  676. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/examples/testformatters.js +0 -270
  677. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/index.js +0 -1
  678. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/append/constant.js +0 -47
  679. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/append.js +0 -55
  680. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/count.js +0 -40
  681. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/help.js +0 -48
  682. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/constant.js +0 -43
  683. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/false.js +0 -27
  684. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store/true.js +0 -26
  685. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/store.js +0 -50
  686. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/subparsers.js +0 -148
  687. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action/version.js +0 -50
  688. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action.js +0 -146
  689. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/action_container.js +0 -481
  690. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argparse.js +0 -14
  691. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/error.js +0 -50
  692. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/exclusive.js +0 -54
  693. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument/group.js +0 -75
  694. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/argument_parser.js +0 -1168
  695. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/const.js +0 -18
  696. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/help/added_formatters.js +0 -88
  697. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/help/formatter.js +0 -798
  698. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/lib/namespace.js +0 -77
  699. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/LICENSE +0 -23
  700. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/README.md +0 -22
  701. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/package.json +0 -69
  702. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore-min.js +0 -6
  703. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore.js +0 -1415
  704. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/.npmignore +0 -2
  705. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/.travis.yml +0 -8
  706. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/README.markdown +0 -825
  707. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/bower.json +0 -33
  708. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/component.json +0 -11
  709. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/foo.js +0 -10
  710. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/gulpfile.js +0 -26
  711. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/lib/underscore.string.js +0 -673
  712. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/libpeerconnection.log +0 -0
  713. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/package.json +0 -107
  714. data/stdlib/nodejs/node_modules/js-yaml/node_modules/argparse/package.json +0 -62
  715. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/README.md +0 -73
  716. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/bin/esparse.js +0 -117
  717. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js +0 -177
  718. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/esprima.js +0 -3908
  719. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/package.json +0 -69
  720. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/compat.js +0 -239
  721. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/reflect.js +0 -422
  722. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/run.js +0 -66
  723. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/runner.js +0 -387
  724. data/stdlib/nodejs/node_modules/js-yaml/node_modules/esprima/test/test.js +0 -20238
  725. data/stdlib/nodejs/node_modules/js-yaml/package.json +0 -83
  726. data/stdlib/phantomjs.rb +0 -17
  727. data/tasks/testing/sprockets-phantomjs.js +0 -54
  728. data/test/nodejs/test_dir.rb +0 -17
  729. data/test/nodejs/test_file.rb +0 -30
  730. data/test/opal/test_keyword.rb +0 -590
  731. data/test/opal/unsupported_and_bugs.rb +0 -30
  732. /data/{CODE_OF_CONDUCT.md → CONDUCT.md} +0 -0
  733. /data/{bin → exe}/opal-build +0 -0
  734. /data/{bin → exe}/opal-mspec +0 -0
@@ -1,39 +0,0 @@
1
- describe "Array literals" do
2
- it "[] accepts a literal hash without curly braces as its last parameter" do
3
- ["foo", "bar" => :baz].should == ["foo", {"bar" => :baz}]
4
- [1, 2, 3 => 6, 4 => 24].should == [1, 2, {3 => 6, 4 => 24}]
5
- end
6
-
7
- it "[] treats splatted nil as no element" do
8
- [*nil].should == []
9
- [1, *nil].should == [1]
10
- [1, 2, *nil].should == [1, 2]
11
- [1, *nil, 3].should == [1, 3]
12
- [*nil, *nil, *nil].should == []
13
- end
14
- end
15
-
16
- describe "The unpacking splat operator (*)" do
17
- it "when applied to a non-Array value attempts to coerce it to Array if the object respond_to?(:to_a)" do
18
- obj = mock("pseudo-array")
19
- obj.should_receive(:to_a).and_return([2, 3, 4])
20
- [1, *obj].should == [1, 2, 3, 4]
21
- end
22
-
23
- it "when applied to a non-Array value uses it unchanged if it does not respond_to?(:to_a)" do
24
- obj = Object.new
25
- obj.should_not respond_to(:to_a)
26
- [1, *obj].should == [1, obj]
27
- end
28
-
29
- it "can be used before other non-splat elements" do
30
- a = [1, 2]
31
- [0, *a, 3].should == [0, 1, 2, 3]
32
- end
33
-
34
- it "can be used multiple times in the same containing array" do
35
- a = [1, 2]
36
- b = [1, 0]
37
- [*a, 3, *a, *b].should == [1, 2, 3, 1, 2, 1, 0]
38
- end
39
- end
File without changes
File without changes
@@ -1,20 +0,0 @@
1
- describe "The 'case'-construct" do
2
- it "takes multiple expanded arrays" do
3
- a1 = ['f', 'o', 'o']
4
- a2 = ['b', 'a', 'r']
5
-
6
- case 'f'
7
- when *a1, *['x', 'y', 'z']
8
- "foo"
9
- when *a2, *['x', 'y', 'z']
10
- "bar"
11
- end.should == "foo"
12
-
13
- case 'b'
14
- when *a1, *['x', 'y', 'z']
15
- "foo"
16
- when *a2, *['x', 'y', 'z']
17
- "bar"
18
- end.should == "bar"
19
- end
20
- end
@@ -1,62 +0,0 @@
1
- # TODO: this should be loaded from rubyspec instead
2
-
3
- describe "An instance method with keyword arguments" do
4
- context "when there is a single keyword argument" do
5
- before do
6
- def foo(a: 1)
7
- a
8
- end
9
- end
10
-
11
- it "evaluates to the default when a value isn't provided" do
12
- foo.should == 1
13
- end
14
-
15
- it "evaluates to the provided value" do
16
- foo(a: 20).should == 20
17
- foo(a: nil).should be_nil
18
- end
19
-
20
- it "raises an argument error when an unknown keyword argument is provided" do
21
- lambda { foo(b: 20) }.should raise_error(ArgumentError)
22
- end
23
-
24
- it "raises an argument error when a non-keyword argument is provided" do
25
- lambda { foo(1) }.should raise_error(ArgumentError)
26
- end
27
- end
28
-
29
- it "treats a sole hash argument correctly" do
30
- def foo(a, b: 10)
31
- [a, b]
32
- end
33
- foo(b: "b").should == [{:b => "b"}, 10]
34
- foo("a", b: "b").should == ["a", "b"]
35
- end
36
-
37
- it "correctly distinguishes between optional and keyword arguments" do
38
- def foo(a = true, b: 10)
39
- [a, b]
40
- end
41
- foo(b: 42).should == [true, 42]
42
- foo(false, b: 42).should == [false, 42]
43
- end
44
-
45
- it "correctly distinguishes between rest and keyword arguments" do
46
- def foo(*a, b: 10)
47
- [a, b]
48
- end
49
- foo(1, 2, 3, 4).should == [[1, 2, 3, 4], 10]
50
- foo(1, 2, 3, 4, b: 42).should == [[1, 2, 3, 4], 42]
51
- foo(b: 42).should == [[], 42]
52
- end
53
-
54
- it "should allow keyword rest arguments" do
55
- def foo(a: 1, **b)
56
- [a, b]
57
- end
58
- foo(b: 2, c: 3, d: 4).should == [1, {:b => 2, :c => 3, :d => 4}]
59
- foo(a: 4, b: 2).should == [4, {:b => 2}]
60
- foo.should == [1, {}]
61
- end
62
- end
@@ -1,23 +0,0 @@
1
- describe "Hash literal" do
2
- describe "new-style hash syntax" do
3
- it "constructs a new hash with the given elements" do
4
- {foo: 123}.should == {:foo => 123}
5
- {rbx: :cool, specs: 'fail_sometimes'}.should == {:rbx => :cool, :specs => 'fail_sometimes'}
6
- end
7
-
8
- it "ignores a hanging comma" do
9
- {foo: 123,}.should == {:foo => 123}
10
- {rbx: :cool, specs: 'fail_sometimes',}.should == {:rbx => :cool, :specs => 'fail_sometimes'}
11
- end
12
-
13
- it "can mix and match syntax styles" do
14
- {rbx: :cool, :specs => 'fail_sometimes'}.should == {:rbx => :cool, :specs => 'fail_sometimes'}
15
- {'rbx' => :cool, specs: 'fail_sometimes'}.should == {'rbx' => :cool, :specs => 'fail_sometimes'}
16
- end
17
-
18
- it "accepts symbol keys using 'string': syntax" do
19
- {'test': :test}.should == {test: :test}
20
- {'symbol literal': :test}.should == {:'symbol literal' => :test}
21
- end
22
- end
23
- end
@@ -1,143 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '../fixtures/literal_lambda')
2
-
3
- describe "->(){}" do
4
- it "can be specified as a literal" do
5
- lambda { ->(){} }.should_not raise_error
6
- end
7
-
8
- it "returns a Proc object" do
9
- ->(){}.should be_an_instance_of(Proc)
10
- end
11
-
12
- it "returns a lambda" do
13
- ->(){}.lambda?.should be_true
14
- end
15
-
16
- it "can be assigned to a variable" do
17
- var = ->(){}
18
- var.lambda?.should be_true
19
- end
20
-
21
- it "understands a do/end block in place of {}" do
22
- lambda do
23
- ->() do
24
- end
25
- end.should_not raise_error(SyntaxError)
26
- end
27
-
28
- it "requires an associated block" do
29
- lambda { eval "->()" }.should raise_error(SyntaxError)
30
- lambda { eval "->" }.should raise_error(SyntaxError)
31
- end
32
-
33
- it "can be interpolated into a String" do
34
- "1+2=#{->{ 1 + 2}.call}".should == "1+2=3"
35
- end
36
-
37
- it "can be be used as a Hash key" do
38
- h = new_hash
39
- # h[->(one=1){ one + 2}.call] = :value
40
- h.key?(3).should be_true
41
- end
42
-
43
- it "can be used in method parameter lists" do
44
- def glark7654(a=-> { :foo })
45
- a.call
46
- end
47
- glark7654.should == :foo
48
- end
49
-
50
- it "accepts an parameter list between the parenthesis" do
51
- lambda { ->(a) {} }.should_not raise_error(SyntaxError)
52
- lambda { ->(a,b) {} }.should_not raise_error(SyntaxError)
53
- end
54
-
55
- it "accepts an empty parameter list" do
56
- lambda { ->() {} }.should_not raise_error(SyntaxError)
57
- end
58
-
59
- it "allows the parenthesis to be omitted entirely" do
60
- lambda { -> {} }.should_not raise_error(SyntaxError)
61
- lambda { ->{} }.should_not raise_error(SyntaxError)
62
- lambda do
63
- -> do
64
- end
65
- end.should_not raise_error(SyntaxError)
66
- ->{}.should be_an_instance_of(Proc)
67
- end
68
-
69
- it "aliases each argument to the corresponding parameter" do
70
- ->(a) {a}.call(:sym).should == :sym
71
- ->(a,b) {[a, b]}.call(:sym, :bol).should == [:sym, :bol]
72
- end
73
-
74
- it "accepts parameters with default parameters between the parenthesis" do
75
- # lambda { ->(a=1) {} }.should_not raise_error(SyntaxError)
76
- # lambda { ->(x=1, b=[]) {} }.should_not raise_error(SyntaxError)
77
- end
78
-
79
- it "aliases each argument with a default value to the corresponding parameter" do
80
- # ->(a=:cymbal) {a}.call(:sym).should == :sym
81
- # ->(a,b=:cymbal) {[a, b]}.call(:sym, :bol).should == [:sym, :bol]
82
- end
83
-
84
- it "sets arguments to their default value if one wasn't supplied" do
85
- # ->(a=:cymbal) {a}.call.should == :cymbal
86
- # ->(a,b=:cymbal) {[a, b]}.call(:sym).should == [:sym, :cymbal]
87
- end
88
-
89
- it "accepts a parameter prefixed with an asterisk between the parenthesis" do
90
- # lambda { ->(*a) {} }.should_not raise_error(SyntaxError)
91
- # lambda { ->(x, *a) {} }.should_not raise_error(SyntaxError)
92
- end
93
-
94
- it "assigns all remaining arguments to the variable in the parameter list prefixed with an asterisk, if one exists" do
95
- # ->(*a) {a}.call(:per, :cus, :si, :on).should == [:per, :cus, :si, :on]
96
- # ->(a,*b) {b}.call(:per, :cus, :si, :on).should == [:cus, :si, :on]
97
- end
98
-
99
- it "accepts a parameter prefixed with an ampersand between the parenthesis" do
100
- # lambda { ->(&a) {} }.should_not raise_error(SyntaxError)
101
- # lambda { ->(x, &a) {} }.should_not raise_error(SyntaxError)
102
- end
103
-
104
- it "assigns the given block to the parameter prefixed with an ampersand if such a parameter exists" do
105
- # l = ->(&a) { a }.call { :foo }
106
- l.call.should == :foo
107
- end
108
-
109
- it "assigns nil to the parameter prefixed with an ampersand unless a block was supplied" do
110
- # ->(&a) { a }.call.should be_nil
111
- end
112
-
113
- it "accepts a combination of argument types between the parenthesis" do
114
- # lambda { ->(x, y={}, z = Object.new, *a, &b) {} }.
115
- should_not raise_error(SyntaxError)
116
- end
117
-
118
- it "sets parameters appropriately when a combination of parameter types is given between the parenthesis" do
119
- # l = ->(x, y={}, z = Object.new, *a, &b) { [x,y,z,a,b]}
120
- l.call(1, [], [], 30, 40).should == [1, [], [], [30, 40], nil]
121
- block = lambda { :lamb }
122
- l.call(1, [], [], 30, 40, &block).last.should be_an_instance_of(Proc)
123
- # l2 = ->(x, y={}, *a) { [x, y, a]}
124
- l2.call(:x).should == [:x, {}, []]
125
- end
126
-
127
- it "uses lambda's 'rigid' argument handling" do
128
- ->(a, b){}.parameters.first.first.should == :req
129
- ->(a, b){}.parameters.last.first.should == :req
130
- lambda { ->(a, b){}.call 1 }.should raise_error(ArgumentError)
131
- end
132
-
133
- it "does not call the associated block" do
134
- @called = false
135
- ->() { @called = true }
136
- @called.should be_false
137
- end
138
-
139
- it "evaluates constants as normal blocks do" do
140
- l = LiteralLambdaMethods.literal_lambda_with_constant
141
- l.().should == "some value"
142
- end
143
- end
@@ -1,22 +0,0 @@
1
- describe "not()" do
2
- # not(arg).method and method(not(arg)) raise SyntaxErrors on 1.8. Here we
3
- # use #inspect to test that the syntax works on 1.9
4
-
5
- it "can be used as a function" do
6
- lambda do
7
- not(true).inspect
8
- end.should_not raise_error(SyntaxError)
9
- end
10
-
11
- it "returns false if the argument is true" do
12
- not(true).inspect.should == "false"
13
- end
14
-
15
- it "returns true if the argument is false" do
16
- not(false).inspect.should == "true"
17
- end
18
-
19
- it "returns true if the argument is nil" do
20
- not(nil).inspect.should == "true"
21
- end
22
- end
@@ -1,241 +0,0 @@
1
- # FIXME: Add error case
2
- #
3
- require File.expand_path("../../fixtures/send_1.9.rb", __FILE__)
4
- require 'language/fixtures/send_1.9'
5
-
6
- specs = LangSendSpecs
7
-
8
- describe "Invoking a method" do
9
- describe "with required args after the rest arguments" do
10
- it "binds the required arguments first" do
11
- specs.fooM0RQ1(1).should == [[], 1]
12
- specs.fooM0RQ1(1,2).should == [[1], 2]
13
- specs.fooM0RQ1(1,2,3).should == [[1,2], 3]
14
-
15
- specs.fooM1RQ1(1,2).should == [1, [], 2]
16
- specs.fooM1RQ1(1,2,3).should == [1, [2], 3]
17
- specs.fooM1RQ1(1,2,3,4).should == [1, [2, 3], 4]
18
-
19
- specs.fooM1O1RQ1(1,2).should == [1, 9, [], 2]
20
- specs.fooM1O1RQ1(1,2,3).should == [1, 2, [], 3]
21
- specs.fooM1O1RQ1(1,2,3,4).should == [1, 2, [3], 4]
22
-
23
- specs.fooM1O1RQ2(1,2,3).should == [1, 9, [], 2, 3]
24
- specs.fooM1O1RQ2(1,2,3,4).should == [1, 2, [], 3, 4]
25
- specs.fooM1O1RQ2(1,2,3,4,5).should == [1, 2, [3], 4, 5]
26
- end
27
- end
28
-
29
- describe "with manditory arguments after optional arguments" do
30
- it "binds the required arguments first" do
31
- specs.fooO1Q1(0,1).should == [0,1]
32
- specs.fooO1Q1(2).should == [1,2]
33
-
34
- specs.fooM1O1Q1(2,3,4).should == [2,3,4]
35
- specs.fooM1O1Q1(1,3).should == [1,2,3]
36
-
37
- specs.fooM2O1Q1(1,2,4).should == [1,2,3,4]
38
-
39
- specs.fooM2O2Q1(1,2,3,4,5).should == [1,2,3,4,5]
40
- specs.fooM2O2Q1(1,2,3,5).should == [1,2,3,4,5]
41
- specs.fooM2O2Q1(1,2,5).should == [1,2,3,4,5]
42
-
43
- specs.fooO4Q1(1,2,3,4,5).should == [1,2,3,4,5]
44
- specs.fooO4Q1(1,2,3,5).should == [1,2,3,4,5]
45
- specs.fooO4Q1(1,2,5).should == [1,2,3,4,5]
46
- specs.fooO4Q1(1,5).should == [1,2,3,4,5]
47
- specs.fooO4Q1(5).should == [1,2,3,4,5]
48
-
49
- specs.fooO4Q2(1,2,3,4,5,6).should == [1,2,3,4,5,6]
50
- specs.fooO4Q2(1,2,3,5,6).should == [1,2,3,4,5,6]
51
- specs.fooO4Q2(1,2,5,6).should == [1,2,3,4,5,6]
52
- specs.fooO4Q2(1,5,6).should == [1,2,3,4,5,6]
53
- specs.fooO4Q2(5,6).should == [1,2,3,4,5,6]
54
- end
55
- end
56
-
57
- it "with .() invokes #call" do
58
- q = proc { |z| z }
59
- q.(1).should == 1
60
-
61
- obj = mock("paren call")
62
- obj.should_receive(:call).and_return(:called)
63
- obj.().should == :called
64
- end
65
-
66
- it "allows a vestigial trailing ',' in the arguments" do
67
- # specs.fooM1(1,).should == [1]
68
- end
69
-
70
- it "with splat operator attempts to coerce it to an Array if the object respond_to?(:to_a)" do
71
- ary = [2,3,4]
72
- obj = mock("to_a")
73
- obj.should_receive(:to_a).and_return(ary).twice
74
- specs.fooM0R(*obj).should == ary
75
- specs.fooM1R(1,*obj).should == [1, ary]
76
- end
77
-
78
- it "with splat operator * and non-Array value uses value unchanged if it does not respond_to?(:to_ary)" do
79
- obj = Object.new
80
- obj.should_not respond_to(:to_a)
81
-
82
- specs.fooM0R(*obj).should == [obj]
83
- specs.fooM1R(1,*obj).should == [1, [obj]]
84
- end
85
-
86
- it "accepts additional arguments after splat expansion" do
87
- a = [1,2]
88
- specs.fooM4(*a,3,4).should == [1,2,3,4]
89
- specs.fooM4(0,*a,3).should == [0,1,2,3]
90
- end
91
-
92
- it "accepts final explicit literal Hash arguments after the splat" do
93
- a = [1, 2]
94
- specs.fooM0RQ1(*a, { :a => 1 }).should == [[1, 2], { :a => 1 }]
95
- end
96
-
97
- it "accepts final implicit literal Hash arguments after the splat" do
98
- a = [1, 2]
99
- specs.fooM0RQ1(*a, :a => 1).should == [[1, 2], { :a => 1 }]
100
- end
101
-
102
- it "accepts final Hash arguments after the splat" do
103
- a = [1, 2]
104
- b = { :a => 1 }
105
- specs.fooM0RQ1(*a, b).should == [[1, 2], { :a => 1 }]
106
- end
107
-
108
- it "accepts mandatory and explicit literal Hash arguments after the splat" do
109
- a = [1, 2]
110
- specs.fooM0RQ2(*a, 3, { :a => 1 }).should == [[1, 2], 3, { :a => 1 }]
111
- end
112
-
113
- it "accepts mandatory and implicit literal Hash arguments after the splat" do
114
- a = [1, 2]
115
- specs.fooM0RQ2(*a, 3, :a => 1).should == [[1, 2], 3, { :a => 1 }]
116
- end
117
-
118
- it "accepts mandatory and Hash arguments after the splat" do
119
- a = [1, 2]
120
- b = { :a => 1 }
121
- specs.fooM0RQ2(*a, 3, b).should == [[1, 2], 3, { :a => 1 }]
122
- end
123
-
124
- it "converts a final splatted explicit Hash to an Array" do
125
- a = [1, 2]
126
- specs.fooR(*a, 3, *{ :a => 1 }).should == [1, 2, 3, [:a, 1]]
127
- end
128
-
129
- it "calls #to_a to convert a final splatted Hash object to an Array" do
130
- a = [1, 2]
131
- b = { :a => 1 }
132
- b.should_receive(:to_a).and_return([:a, 1])
133
-
134
- specs.fooR(*a, 3, *b).should == [1, 2, 3, :a, 1]
135
- end
136
-
137
- it "accepts multiple splat expansions in the same argument list" do
138
- a = [1,2,3]
139
- b = 7
140
- c = mock("pseudo-array")
141
- c.should_receive(:to_a).and_return([0,0])
142
-
143
- d = [4,5]
144
- specs.rest_len(*a,*d,6,*b).should == 7
145
- specs.rest_len(*a,*a,*a).should == 9
146
- specs.rest_len(0,*a,4,*5,6,7,*c,-1).should == 11
147
- end
148
-
149
- it "expands an array to arguments grouped in parentheses" do
150
- specs.destructure2([40,2]).should == 42
151
- end
152
-
153
- it "expands an array to arguments grouped in parentheses and ignores any rest arguments in the array" do
154
- specs.destructure2([40,2,84]).should == 42
155
- end
156
-
157
- it "expands an array to arguments grouped in parentheses and sets not specified arguments to nil" do
158
- specs.destructure2b([42]).should == [42, nil]
159
- end
160
-
161
- it "expands an array to arguments grouped in parentheses which in turn takes rest arguments" do
162
- specs.destructure4r([1, 2, 3]).should == [1, 2, [], 3, nil]
163
- specs.destructure4r([1, 2, 3, 4]).should == [1, 2, [], 3, 4]
164
- specs.destructure4r([1, 2, 3, 4, 5]).should == [1, 2, [3], 4, 5]
165
- end
166
-
167
- describe "new-style hash arguments" do
168
- describe "as the only parameter" do
169
- it "passes without curly braces" do
170
- specs.fooM1(rbx: 'cool', specs: :fail_sometimes, non_sym: 1234).should ==
171
- [{ :rbx => 'cool', :specs => :fail_sometimes, :non_sym => 1234 }]
172
- end
173
-
174
- it "passes without curly braces or parens" do
175
- (specs.fooM1 rbx: 'cool', specs: :fail_sometimes, non_sym: 1234).should ==
176
- [{ :rbx => 'cool', :specs => :fail_sometimes, :non_sym => 1234 }]
177
- end
178
-
179
- it "handles a hanging comma without curly braces" do
180
- # specs.fooM1(abc: 123,).should == [{:abc => 123}]
181
- # specs.fooM1(rbx: 'cool', specs: :fail_sometimes, non_sym: 1234,).should ==
182
- # [{ :rbx => 'cool', :specs => :fail_sometimes, :non_sym => 1234 }]
183
- end
184
- end
185
-
186
- describe "as the last parameter" do
187
- it "passes without curly braces" do
188
- specs.fooM3('abc', 123, rbx: 'cool', specs: :fail_sometimes, non_sym: 1234).should ==
189
- ['abc', 123, { :rbx => 'cool', :specs => :fail_sometimes, :non_sym => 1234 }]
190
- end
191
-
192
- it "passes without curly braces or parens" do
193
- (specs.fooM3 'abc', 123, rbx: 'cool', specs: :fail_sometimes, non_sym: 1234).should ==
194
- ['abc', 123, { :rbx => 'cool', :specs => :fail_sometimes, :non_sym => 1234 }]
195
- end
196
-
197
- it "handles a hanging comma without curly braces" do
198
- # specs.fooM3('abc', 123, abc: 123,).should == ['abc', 123, {:abc => 123}]
199
- # specs.fooM3('abc', 123, rbx: 'cool', specs: :fail_sometimes, non_sym: 1234,).should ==
200
- # ['abc', 123, { :rbx => 'cool', :specs => :fail_sometimes, :non_sym => 1234 }]
201
- end
202
- end
203
- end
204
-
205
- describe "mixed new- and old-style hash arguments" do
206
- describe "as the only parameter" do
207
- it "passes without curly braces" do
208
- specs.fooM1(rbx: 'cool', :specs => :fail_sometimes, non_sym: 1234).should ==
209
- [{ :rbx => 'cool', :specs => :fail_sometimes, :non_sym => 1234 }]
210
- end
211
-
212
- it "passes without curly braces or parens" do
213
- (specs.fooM1 :rbx => 'cool', specs: :fail_sometimes, non_sym: 1234).should ==
214
- [{ :rbx => 'cool', :specs => :fail_sometimes, :non_sym => 1234 }]
215
- end
216
-
217
- it "handles a hanging comma without curly braces" do
218
- # specs.fooM1(rbx: 'cool', specs: :fail_sometimes, :non_sym => 1234,).should ==
219
- # [{ :rbx => 'cool', :specs => :fail_sometimes, :non_sym => 1234 }]
220
- end
221
- end
222
-
223
- describe "as the last parameter" do
224
- it "passes without curly braces" do
225
- specs.fooM3('abc', 123, rbx: 'cool', :specs => :fail_sometimes, non_sym: 1234).should ==
226
- ['abc', 123, { :rbx => 'cool', :specs => :fail_sometimes, :non_sym => 1234 }]
227
- end
228
-
229
- it "passes without curly braces or parens" do
230
- (specs.fooM3 'abc', 123, :rbx => 'cool', specs: :fail_sometimes, non_sym: 1234).should ==
231
- ['abc', 123, { :rbx => 'cool', :specs => :fail_sometimes, :non_sym => 1234 }]
232
- end
233
-
234
- it "handles a hanging comma without curly braces" do
235
- # specs.fooM3('abc', 123, rbx: 'cool', specs: :fail_sometimes, :non_sym => 1234,).should ==
236
- # ['abc', 123, { :rbx => 'cool', :specs => :fail_sometimes, :non_sym => 1234 }]
237
- end
238
- end
239
- end
240
-
241
- end
@@ -1,15 +0,0 @@
1
- describe "A Symbol literal" do
2
- it "can be an empty string" do
3
- c = :''
4
- c.should be_kind_of(Symbol)
5
- c.inspect.should == ':""'
6
- end
7
-
8
- # These weren't allowed on 1.8
9
- it "can be :!, :!=, or :!~" do
10
- %w{'!', '!=', '!~'}.each do |sym|
11
- lambda { sym.to_sym }.should_not raise_error(SyntaxError)
12
- sym.to_sym.to_s.should == sym
13
- end
14
- end
15
- end
@@ -1,8 +0,0 @@
1
- describe "Multiple assignments with splats" do
2
- it "* on the LHS has to be applied to any parameter" do
3
- a, *b, c = 1, 2, 3
4
- a.should == 1
5
- b.should == [2]
6
- c.should == 3
7
- end
8
- end
@@ -1,45 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "begin & rescue blocks" do
4
- it "should evaluate to begin blocks last expression when no exception" do
5
- result = begin
6
- "a"
7
- rescue
8
- "b"
9
- end
10
-
11
- result.should == "a"
12
- end
13
-
14
- it "should evaluate to rescue blocks last expression when exception" do
15
- result = begin
16
- raise "foo"
17
- rescue
18
- "bar"
19
- end
20
-
21
- result.should == "bar"
22
- end
23
- end
24
-
25
- describe "generated method names" do
26
- it "does not conflict with local Ruby variables" do
27
- Class.new {
28
- value = 123
29
- def value
30
- 456
31
- end
32
- value.should == 123
33
- }
34
- end
35
-
36
- it "does not conflict with local JS variables" do
37
- Class.new {
38
- `var value = 123;`
39
- def value
40
- 456
41
- end
42
- `value`.should == 123
43
- }
44
- end
45
- end
@@ -1,53 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module MarshalExtension
4
- end
5
-
6
- class MarshalUserRegexp < Regexp
7
- end
8
-
9
- class UserMarshal
10
- attr_reader :data
11
-
12
- def initialize
13
- @data = 'stuff'
14
- end
15
- def marshal_dump() 'data' end
16
- def marshal_load(data) @data = data end
17
- def ==(other) self.class === other and @data == other.data end
18
- end
19
-
20
- describe 'Marshal.dump' do
21
- it 'dumps non-empty Array' do
22
- expect(Marshal.dump(['a', 1, 2])).to eq("\u0004\b[\b\"\u0006ai\u0006i\a")
23
- end
24
-
25
- it 'dumps case-sensitive regexp' do
26
- expect(Marshal.dump(/\w+/)).to eq("\u0004\b/\b\\w+\u0000")
27
- end
28
-
29
- it 'dumps case-insensitive regexp' do
30
- expect(Marshal.dump(/\w+/i)).to eq("\u0004\b/\b\\w+\u0001")
31
- end
32
-
33
- it "dumps a Float" do
34
- Marshal.dump(123.4567).should == "\004\bf\r123.4567"
35
- Marshal.dump(-0.841).should == "\x04\bf\v-0.841"
36
- Marshal.dump(9876.345).should == "\004\bf\r9876.345"
37
- Marshal.dump(Float::INFINITY).should == "\004\bf\binf"
38
- Marshal.dump(-Float::INFINITY).should == "\004\bf\t-inf"
39
- Marshal.dump(Float::NAN).should == "\004\bf\bnan"
40
- end
41
-
42
- it "dumps a Regexp with flags" do
43
- Marshal.dump(/\w/im).should == "\x04\b/\a\\w\u0005"
44
- end
45
-
46
- it 'dumps an extended Regexp' do
47
- Marshal.dump(/\w/.extend(MarshalExtension)).should == "\x04\be:\u0015MarshalExtension/\a\\w\u0000"
48
- end
49
-
50
- it 'dumps object#marshal_dump when object responds to #marshal_dump' do
51
- Marshal.dump(UserMarshal.new).should == "\u0004\bU:\u0010UserMarshal\"\tdata"
52
- end
53
- end
@@ -1,7 +0,0 @@
1
- describe "Marshal.load" do
2
- it 'loads array with instance variable' do
3
- a = Marshal.load("\x04\bI[\bi\x06i\ai\b\x06:\n@ivari\x01{")
4
- a.should == [1, 2, 3]
5
- a.instance_variable_get(:@ivar).should == 123
6
- end
7
- end