opal 0.11.4 → 1.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (379) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +42 -10
  3. data/.rubocop.yml +398 -0
  4. data/.rubocop_todo.yml +44 -0
  5. data/.travis.yml +28 -34
  6. data/CHANGELOG.md +363 -142
  7. data/CONTRIBUTING.md +3 -5
  8. data/Gemfile +17 -12
  9. data/Guardfile +0 -1
  10. data/HACKING.md +1 -35
  11. data/LICENSE +2 -2
  12. data/README.md +42 -13
  13. data/Rakefile +1 -4
  14. data/UNRELEASED.md +133 -0
  15. data/benchmark-ips/README.md +6 -0
  16. data/benchmark-ips/bm_block_vs_yield.rb +21 -0
  17. data/benchmark-ips/bm_js_symbols_vs_strings.rb +28 -0
  18. data/benchmark-ips/bm_while_true_vs_loop.rb +19 -0
  19. data/bin/console +14 -0
  20. data/bin/opal +0 -1
  21. data/bin/opal-benchmark-ips +8 -0
  22. data/bin/opal-mspec +9 -1
  23. data/bin/opal-repl +2 -1
  24. data/bin/rake +7 -0
  25. data/bin/setup +8 -0
  26. data/docs/compiled_ruby.md +89 -8
  27. data/docs/compiler.md +3 -20
  28. data/docs/jquery.md +44 -11
  29. data/docs/promises.md +1 -1
  30. data/docs/rails.md +16 -12
  31. data/docs/sinatra.md +15 -8
  32. data/docs/using_sprockets.md +16 -11
  33. data/examples/rack/config.ru +1 -0
  34. data/examples/sinatra/Gemfile +1 -0
  35. data/examples/sinatra/config.ru +2 -11
  36. data/exe/opal-repl +3 -11
  37. data/lib/opal.rb +1 -0
  38. data/lib/opal/ast/builder.rb +4 -1
  39. data/lib/opal/ast/node.rb +1 -0
  40. data/lib/opal/builder.rb +84 -63
  41. data/lib/opal/builder_processors.rb +41 -56
  42. data/lib/opal/cli.rb +33 -49
  43. data/lib/opal/cli_options.rb +27 -17
  44. data/lib/opal/cli_runners.rb +73 -16
  45. data/lib/opal/cli_runners/applescript.rb +4 -4
  46. data/lib/opal/cli_runners/chrome.rb +29 -17
  47. data/lib/opal/cli_runners/nashorn.rb +5 -4
  48. data/lib/opal/cli_runners/nodejs.rb +8 -6
  49. data/lib/opal/cli_runners/server.rb +12 -11
  50. data/lib/opal/compiler.rb +85 -103
  51. data/lib/opal/config.rb +3 -3
  52. data/lib/opal/deprecations.rb +2 -1
  53. data/lib/opal/eof_content.rb +2 -2
  54. data/lib/opal/erb.rb +8 -7
  55. data/lib/opal/errors.rb +72 -1
  56. data/lib/opal/fragment.rb +23 -3
  57. data/lib/opal/hike.rb +305 -0
  58. data/lib/opal/nodes.rb +5 -10
  59. data/lib/opal/nodes/arglist.rb +7 -6
  60. data/lib/opal/nodes/args.rb +36 -0
  61. data/lib/opal/nodes/args/arg.rb +22 -0
  62. data/lib/opal/nodes/args/arity_check.rb +151 -0
  63. data/lib/opal/nodes/args/ensure_kwargs_are_kwargs.rb +28 -0
  64. data/lib/opal/nodes/args/extract_block_arg.rb +34 -0
  65. data/lib/opal/nodes/args/extract_kwarg.rb +32 -0
  66. data/lib/opal/nodes/args/extract_kwargs.rb +28 -0
  67. data/lib/opal/nodes/args/extract_kwoptarg.rb +35 -0
  68. data/lib/opal/nodes/args/extract_kwrestarg.rb +35 -0
  69. data/lib/opal/nodes/args/extract_optarg.rb +35 -0
  70. data/lib/opal/nodes/args/extract_post_arg.rb +28 -0
  71. data/lib/opal/nodes/args/extract_post_optarg.rb +41 -0
  72. data/lib/opal/nodes/args/extract_restarg.rb +40 -0
  73. data/lib/opal/nodes/args/fake_arg.rb +26 -0
  74. data/lib/opal/nodes/args/initialize_iterarg.rb +28 -0
  75. data/lib/opal/nodes/args/initialize_shadowarg.rb +24 -0
  76. data/lib/opal/nodes/args/parameters.rb +63 -0
  77. data/lib/opal/nodes/args/prepare_post_args.rb +22 -0
  78. data/lib/opal/nodes/array.rb +9 -8
  79. data/lib/opal/nodes/base.rb +20 -11
  80. data/lib/opal/nodes/call.rb +24 -25
  81. data/lib/opal/nodes/call_special.rb +4 -3
  82. data/lib/opal/nodes/case.rb +24 -26
  83. data/lib/opal/nodes/class.rb +4 -5
  84. data/lib/opal/nodes/constants.rb +8 -7
  85. data/lib/opal/nodes/csend.rb +2 -3
  86. data/lib/opal/nodes/def.rb +28 -74
  87. data/lib/opal/nodes/defined.rb +36 -36
  88. data/lib/opal/nodes/definitions.rb +10 -7
  89. data/lib/opal/nodes/defs.rb +8 -16
  90. data/lib/opal/nodes/hash.rb +5 -4
  91. data/lib/opal/nodes/helpers.rb +8 -8
  92. data/lib/opal/nodes/if.rb +10 -8
  93. data/lib/opal/nodes/iter.rb +16 -103
  94. data/lib/opal/nodes/lambda.rb +18 -0
  95. data/lib/opal/nodes/literal.rb +29 -63
  96. data/lib/opal/nodes/logic.rb +25 -24
  97. data/lib/opal/nodes/masgn.rb +8 -6
  98. data/lib/opal/nodes/module.rb +4 -4
  99. data/lib/opal/nodes/node_with_args.rb +14 -208
  100. data/lib/opal/nodes/rescue.rb +32 -32
  101. data/lib/opal/nodes/runtime_helpers.rb +5 -4
  102. data/lib/opal/nodes/scope.rb +18 -29
  103. data/lib/opal/nodes/singleton_class.rb +3 -3
  104. data/lib/opal/nodes/super.rb +12 -18
  105. data/lib/opal/nodes/top.rb +10 -8
  106. data/lib/opal/nodes/variables.rb +6 -6
  107. data/lib/opal/nodes/while.rb +7 -6
  108. data/lib/opal/nodes/x_string.rb +139 -0
  109. data/lib/opal/nodes/yield.rb +10 -7
  110. data/lib/opal/parser.rb +9 -46
  111. data/lib/opal/parser/default_config.rb +50 -0
  112. data/lib/opal/parser/patch.rb +26 -0
  113. data/lib/opal/parser/source_buffer.rb +11 -0
  114. data/lib/opal/parser/with_c_lexer.rb +14 -0
  115. data/lib/opal/parser/with_ruby_lexer.rb +6 -0
  116. data/lib/opal/path_reader.rb +6 -5
  117. data/lib/opal/paths.rb +9 -6
  118. data/lib/opal/regexp_anchors.rb +6 -5
  119. data/lib/opal/rewriter.rb +7 -0
  120. data/lib/opal/rewriters/arguments.rb +58 -0
  121. data/lib/opal/rewriters/base.rb +32 -12
  122. data/lib/opal/rewriters/binary_operator_assignment.rb +20 -20
  123. data/lib/opal/rewriters/block_to_iter.rb +2 -1
  124. data/lib/opal/rewriters/break_finder.rb +2 -0
  125. data/lib/opal/rewriters/dot_js_syntax.rb +3 -2
  126. data/lib/opal/rewriters/dump_args.rb +28 -0
  127. data/lib/opal/rewriters/explicit_writer_return.rb +4 -3
  128. data/lib/opal/rewriters/for_rewriter.rb +12 -12
  129. data/lib/opal/rewriters/hashes/key_duplicates_rewriter.rb +2 -1
  130. data/lib/opal/rewriters/inline_args.rb +220 -0
  131. data/lib/opal/rewriters/js_reserved_words.rb +21 -17
  132. data/lib/opal/rewriters/logical_operator_assignment.rb +24 -14
  133. data/lib/opal/rewriters/mlhs_args.rb +128 -0
  134. data/lib/opal/rewriters/opal_engine_check.rb +11 -6
  135. data/lib/opal/rewriters/rubyspec/filters_rewriter.rb +3 -2
  136. data/lib/opal/server.rb +1 -0
  137. data/lib/opal/simple_server.rb +15 -23
  138. data/lib/opal/source_map.rb +7 -70
  139. data/lib/opal/source_map/file.rb +199 -0
  140. data/lib/opal/source_map/index.rb +83 -0
  141. data/lib/opal/source_map/map.rb +26 -0
  142. data/lib/opal/source_map/vlq.rb +98 -0
  143. data/lib/opal/util.rb +7 -5
  144. data/lib/opal/version.rb +2 -1
  145. data/lib/tilt/opal.rb +3 -3
  146. data/opal.gemspec +18 -9
  147. data/opal/corelib/array.rb +135 -117
  148. data/opal/corelib/array/pack.rb +446 -0
  149. data/opal/corelib/basic_object.rb +23 -9
  150. data/opal/corelib/boolean.rb +3 -3
  151. data/opal/corelib/class.rb +4 -10
  152. data/opal/corelib/comparable.rb +36 -23
  153. data/opal/corelib/complex.rb +108 -14
  154. data/opal/corelib/constants.rb +4 -4
  155. data/opal/corelib/enumerable.rb +132 -135
  156. data/opal/corelib/enumerator.rb +47 -50
  157. data/opal/corelib/error.rb +65 -8
  158. data/opal/corelib/file.rb +37 -32
  159. data/opal/corelib/hash.rb +90 -21
  160. data/opal/corelib/helpers.rb +7 -6
  161. data/opal/corelib/kernel.rb +53 -586
  162. data/opal/corelib/kernel/format.rb +544 -0
  163. data/opal/corelib/marshal.rb +1 -13
  164. data/opal/corelib/marshal/read_buffer.rb +20 -23
  165. data/opal/corelib/marshal/write_buffer.rb +23 -15
  166. data/opal/corelib/math.rb +12 -16
  167. data/opal/corelib/method.rb +5 -3
  168. data/opal/corelib/module.rb +80 -109
  169. data/opal/corelib/nil.rb +2 -2
  170. data/opal/corelib/number.rb +177 -43
  171. data/opal/corelib/numeric.rb +22 -16
  172. data/opal/corelib/pack_unpack/format_string_parser.rb +135 -0
  173. data/opal/corelib/proc.rb +3 -4
  174. data/opal/corelib/process.rb +1 -1
  175. data/opal/corelib/random.rb +24 -16
  176. data/opal/corelib/random/MersenneTwister.js +137 -0
  177. data/opal/corelib/random/math_random.js.rb +9 -0
  178. data/opal/corelib/random/mersenne_twister.js.rb +13 -0
  179. data/opal/corelib/random/seedrandom.js.rb +12 -0
  180. data/opal/corelib/range.rb +25 -26
  181. data/opal/corelib/rational.rb +57 -17
  182. data/opal/corelib/regexp.rb +39 -43
  183. data/opal/corelib/runtime.js +806 -683
  184. data/opal/corelib/string.rb +213 -112
  185. data/opal/corelib/string/encoding.rb +14 -17
  186. data/opal/corelib/string/unpack.rb +793 -0
  187. data/opal/corelib/struct.rb +40 -24
  188. data/opal/corelib/time.rb +14 -15
  189. data/opal/corelib/unsupported.rb +26 -4
  190. data/opal/opal.rb +2 -1
  191. data/opal/opal/full.rb +2 -0
  192. data/stdlib/base64.rb +1 -1
  193. data/stdlib/bigdecimal.rb +11 -13
  194. data/stdlib/buffer.rb +9 -8
  195. data/stdlib/buffer/array.rb +46 -48
  196. data/stdlib/buffer/view.rb +85 -47
  197. data/stdlib/console.rb +18 -18
  198. data/stdlib/date.rb +85 -66
  199. data/stdlib/delegate.rb +2 -2
  200. data/stdlib/e2mmap.rb +176 -0
  201. data/stdlib/encoding.rb +1 -1
  202. data/stdlib/erb.rb +1 -1
  203. data/stdlib/forwardable.rb +14 -14
  204. data/stdlib/json.rb +1 -2
  205. data/stdlib/logger.rb +112 -0
  206. data/stdlib/math.rb +1 -1
  207. data/stdlib/matrix.rb +2169 -0
  208. data/stdlib/matrix/eigenvalue_decomposition.rb +883 -0
  209. data/stdlib/matrix/lup_decomposition.rb +219 -0
  210. data/stdlib/nashorn/file.rb +7 -9
  211. data/stdlib/native.rb +69 -63
  212. data/stdlib/nodejs.rb +3 -0
  213. data/stdlib/nodejs/dir.rb +25 -4
  214. data/stdlib/nodejs/env.rb +40 -0
  215. data/stdlib/nodejs/file.rb +184 -34
  216. data/stdlib/nodejs/fileutils.rb +4 -4
  217. data/stdlib/nodejs/io.rb +4 -46
  218. data/stdlib/nodejs/irb.rb +27 -29
  219. data/stdlib/nodejs/kernel.rb +2 -11
  220. data/stdlib/nodejs/node_modules/balanced-match/.npmignore +5 -0
  221. data/stdlib/nodejs/node_modules/balanced-match/LICENSE.md +21 -0
  222. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match → balanced-match}/README.md +13 -2
  223. data/stdlib/nodejs/node_modules/balanced-match/index.js +59 -0
  224. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match → balanced-match}/package.json +46 -42
  225. data/stdlib/nodejs/node_modules/brace-expansion/LICENSE +21 -0
  226. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion → brace-expansion}/README.md +9 -1
  227. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion → brace-expansion}/index.js +12 -2
  228. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion → brace-expansion}/package.json +48 -48
  229. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/.travis.yml +0 -0
  230. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/LICENSE +0 -0
  231. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/README.markdown +0 -0
  232. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/example/map.js +0 -0
  233. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/index.js +0 -0
  234. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/package.json +47 -42
  235. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/test/map.js +0 -0
  236. data/stdlib/nodejs/node_modules/fs.realpath/LICENSE +43 -0
  237. data/stdlib/nodejs/node_modules/fs.realpath/README.md +33 -0
  238. data/stdlib/nodejs/node_modules/fs.realpath/index.js +66 -0
  239. data/stdlib/nodejs/node_modules/fs.realpath/old.js +303 -0
  240. data/stdlib/nodejs/node_modules/fs.realpath/package.json +59 -0
  241. data/stdlib/nodejs/node_modules/glob/README.md +57 -46
  242. data/stdlib/nodejs/node_modules/glob/changelog.md +67 -0
  243. data/stdlib/nodejs/node_modules/glob/common.js +91 -28
  244. data/stdlib/nodejs/node_modules/glob/glob.js +196 -55
  245. data/stdlib/nodejs/node_modules/glob/package.json +55 -51
  246. data/stdlib/nodejs/node_modules/glob/sync.js +116 -39
  247. data/stdlib/nodejs/node_modules/{glob/node_modules/inflight → inflight}/LICENSE +0 -0
  248. data/stdlib/nodejs/node_modules/{glob/node_modules/inflight → inflight}/README.md +0 -0
  249. data/stdlib/nodejs/node_modules/inflight/inflight.js +54 -0
  250. data/stdlib/nodejs/node_modules/inflight/package.json +58 -0
  251. data/stdlib/nodejs/node_modules/{glob/node_modules/inherits → inherits}/LICENSE +0 -0
  252. data/stdlib/nodejs/node_modules/{glob/node_modules/inherits → inherits}/README.md +0 -0
  253. data/stdlib/nodejs/node_modules/inherits/inherits.js +7 -0
  254. data/stdlib/nodejs/node_modules/{glob/node_modules/inherits → inherits}/inherits_browser.js +0 -0
  255. data/stdlib/nodejs/node_modules/inherits/package.json +61 -0
  256. data/stdlib/nodejs/node_modules/{glob/node_modules/inflight/node_modules/wrappy → minimatch}/LICENSE +0 -0
  257. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch → minimatch}/README.md +2 -9
  258. data/stdlib/nodejs/node_modules/{glob/node_modules/minimatch → minimatch}/minimatch.js +284 -206
  259. data/stdlib/nodejs/node_modules/minimatch/package.json +63 -0
  260. data/stdlib/nodejs/node_modules/{glob/node_modules/once/node_modules/wrappy → once}/LICENSE +0 -0
  261. data/stdlib/nodejs/node_modules/{glob/node_modules/once → once}/README.md +28 -0
  262. data/stdlib/nodejs/node_modules/once/once.js +42 -0
  263. data/stdlib/nodejs/node_modules/once/package.json +67 -0
  264. data/stdlib/nodejs/node_modules/path-is-absolute/index.js +20 -0
  265. data/stdlib/nodejs/node_modules/path-is-absolute/license +21 -0
  266. data/stdlib/nodejs/node_modules/path-is-absolute/package.json +75 -0
  267. data/stdlib/nodejs/node_modules/path-is-absolute/readme.md +59 -0
  268. data/stdlib/nodejs/node_modules/unxhr/LICENSE +22 -0
  269. data/stdlib/nodejs/node_modules/unxhr/README.md +41 -0
  270. data/stdlib/nodejs/node_modules/unxhr/lib/XMLHttpRequest.js +598 -0
  271. data/stdlib/nodejs/node_modules/unxhr/lib/browser.js +2 -0
  272. data/stdlib/nodejs/node_modules/unxhr/lib/request.js +63 -0
  273. data/stdlib/nodejs/node_modules/unxhr/package.json +75 -0
  274. data/stdlib/nodejs/node_modules/wrappy/LICENSE +15 -0
  275. data/stdlib/nodejs/node_modules/{glob/node_modules/inflight/node_modules/wrappy → wrappy}/README.md +0 -0
  276. data/stdlib/nodejs/node_modules/wrappy/package.json +59 -0
  277. data/stdlib/nodejs/node_modules/{glob/node_modules/inflight/node_modules/wrappy → wrappy}/wrappy.js +0 -0
  278. data/stdlib/nodejs/open-uri.rb +26 -0
  279. data/stdlib/nodejs/package-lock.json +88 -0
  280. data/stdlib/nodejs/package.json +2 -1
  281. data/stdlib/nodejs/pathname.rb +20 -0
  282. data/stdlib/nodejs/require.rb +3 -3
  283. data/stdlib/nodejs/stacktrace.rb +1 -1
  284. data/stdlib/nodejs/yaml.rb +1 -1
  285. data/stdlib/opal-builder.rb +1 -0
  286. data/stdlib/opal-parser.rb +4 -1
  287. data/stdlib/opal-platform.rb +8 -10
  288. data/stdlib/opal-source-maps.rb +0 -1
  289. data/stdlib/open-uri.rb +349 -0
  290. data/stdlib/ostruct.rb +19 -17
  291. data/stdlib/pathname.rb +22 -22
  292. data/stdlib/pp.rb +5 -5
  293. data/stdlib/promise.rb +30 -26
  294. data/stdlib/rbconfig/sizeof.rb +50 -0
  295. data/stdlib/securerandom.rb +1 -1
  296. data/stdlib/set.rb +21 -23
  297. data/stdlib/singleton.rb +3 -4
  298. data/stdlib/stringio.rb +33 -0
  299. data/stdlib/strscan.rb +55 -55
  300. data/stdlib/template.rb +1 -2
  301. data/stdlib/thread.rb +6 -7
  302. data/tasks/benchmarking.rake +1 -1
  303. data/tasks/building.rake +4 -12
  304. data/tasks/linting.rake +17 -2
  305. data/tasks/releasing.rake +84 -0
  306. data/tasks/testing.rake +57 -15
  307. data/tasks/testing/mspec_special_calls.rb +23 -4
  308. data/vendored-minitest/minitest.rb +1 -1
  309. metadata +169 -168
  310. data/bin/opal-build +0 -3
  311. data/exe/opal-mspec +0 -10
  312. data/lib/opal/nodes/args/initialize_kwargs.rb +0 -29
  313. data/lib/opal/nodes/args/kwarg.rb +0 -31
  314. data/lib/opal/nodes/args/kwoptarg.rb +0 -34
  315. data/lib/opal/nodes/args/kwrestarg.rb +0 -39
  316. data/lib/opal/nodes/args/mlhsarg.rb +0 -78
  317. data/lib/opal/nodes/args/normarg.rb +0 -29
  318. data/lib/opal/nodes/args/optarg.rb +0 -25
  319. data/lib/opal/nodes/args/post_args.rb +0 -201
  320. data/lib/opal/nodes/args/post_kwargs.rb +0 -32
  321. data/lib/opal/nodes/args/restarg.rb +0 -38
  322. data/lib/opal/nodes/inline_args.rb +0 -60
  323. data/opal/corelib/string/inheritance.rb +0 -123
  324. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/.eslintrc +0 -17
  325. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/inflight.js +0 -44
  326. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/package.json +0 -52
  327. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/node_modules/wrappy/test/basic.js +0 -51
  328. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/package.json +0 -61
  329. data/stdlib/nodejs/node_modules/glob/node_modules/inflight/test.js +0 -97
  330. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/inherits.js +0 -1
  331. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/package.json +0 -51
  332. data/stdlib/nodejs/node_modules/glob/node_modules/inherits/test.js +0 -25
  333. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/.npmignore +0 -1
  334. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/.travis.yml +0 -4
  335. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/LICENSE +0 -23
  336. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/benchmark.js +0 -15
  337. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/browser.js +0 -1181
  338. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +0 -2
  339. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.travis.yml +0 -3
  340. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +0 -8
  341. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +0 -2
  342. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml +0 -4
  343. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +0 -6
  344. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +0 -5
  345. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +0 -38
  346. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +0 -56
  347. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-comparison.js +0 -32
  348. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/bash-results.txt +0 -1075
  349. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/cases.txt +0 -182
  350. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/dollar.js +0 -9
  351. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/empty-option.js +0 -10
  352. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/generate.sh +0 -24
  353. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/negative-increment.js +0 -15
  354. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/nested.js +0 -16
  355. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/order.js +0 -10
  356. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/pad.js +0 -13
  357. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/same-type.js +0 -7
  358. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/test/sequence.js +0 -50
  359. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/package.json +0 -60
  360. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/basic.js +0 -399
  361. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/brace-expand.js +0 -45
  362. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/defaults.js +0 -274
  363. data/stdlib/nodejs/node_modules/glob/node_modules/minimatch/test/extglob-ending-with-state-char.js +0 -8
  364. data/stdlib/nodejs/node_modules/glob/node_modules/once/LICENSE +0 -27
  365. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/README.md +0 -36
  366. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/package.json +0 -52
  367. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/test/basic.js +0 -51
  368. data/stdlib/nodejs/node_modules/glob/node_modules/once/node_modules/wrappy/wrappy.js +0 -33
  369. data/stdlib/nodejs/node_modules/glob/node_modules/once/once.js +0 -21
  370. data/stdlib/nodejs/node_modules/glob/node_modules/once/package.json +0 -60
  371. data/stdlib/nodejs/node_modules/glob/node_modules/once/test/once.js +0 -23
  372. data/stdlib/nodejs/rubygems.rb +0 -68
  373. data/stdlib/source_map.rb +0 -5
  374. data/stdlib/source_map/map.rb +0 -220
  375. data/stdlib/source_map/mapping.rb +0 -26
  376. data/stdlib/source_map/offset.rb +0 -88
  377. data/stdlib/source_map/version.rb +0 -3
  378. data/stdlib/source_map/vlq.rb +0 -99
  379. data/stdlib/sourcemap.rb +0 -1
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'opal/nodes/base'
3
4
 
4
5
  module Opal
@@ -24,35 +25,35 @@ module Opal
24
25
  end
25
26
  when :send
26
27
  compile_defined_send(value)
27
- wrap "(", " ? 'method' : nil)"
28
+ wrap '(', " ? 'method' : nil)"
28
29
  when :ivar
29
30
  compile_defined_ivar(value)
30
- wrap "(", " ? 'instance-variable' : nil)"
31
+ wrap '(', " ? 'instance-variable' : nil)"
31
32
  when :zsuper, :super
32
- compile_defined_super(value)
33
+ compile_defined_super
33
34
  when :yield
34
- compile_defined_yield(value)
35
- wrap "(", " ? 'yield' : nil)"
35
+ compile_defined_yield
36
+ wrap '(', " ? 'yield' : nil)"
36
37
  when :xstr
37
38
  compile_defined_xstr(value)
38
39
  when :const
39
40
  compile_defined_const(value)
40
- wrap "(", " ? 'constant' : nil)"
41
+ wrap '(', " ? 'constant' : nil)"
41
42
  when :cvar
42
43
  compile_defined_cvar(value)
43
- wrap "(", " ? 'class variable' : nil)"
44
+ wrap '(', " ? 'class variable' : nil)"
44
45
  when :gvar
45
46
  compile_defined_gvar(value)
46
- wrap "(", " ? 'global-variable' : nil)"
47
+ wrap '(', " ? 'global-variable' : nil)"
47
48
  when :back_ref
48
- compile_defined_back_ref(value)
49
- wrap "(", " ? 'global-variable' : nil)"
49
+ compile_defined_back_ref
50
+ wrap '(', " ? 'global-variable' : nil)"
50
51
  when :nth_ref
51
- compile_defined_nth_ref(value)
52
- wrap "(", " ? 'global-variable' : nil)"
52
+ compile_defined_nth_ref
53
+ wrap '(', " ? 'global-variable' : nil)"
53
54
  when :array
54
55
  compile_defined_array(value)
55
- wrap "(", " ? 'expression' : nil)"
56
+ wrap '(', " ? 'expression' : nil)"
56
57
  else
57
58
  push "'expression'"
58
59
  end
@@ -65,7 +66,7 @@ module Opal
65
66
  __send__("compile_defined_#{type}", node)
66
67
  else
67
68
  node_tmp = scope.new_temp
68
- push "(#{node_tmp} = ", expr(node), ")"
69
+ push "(#{node_tmp} = ", expr(node), ')'
69
70
  node_tmp
70
71
  end
71
72
  end
@@ -75,13 +76,13 @@ module Opal
75
76
 
76
77
  push "(#{returning_tmp} = (function() { try {"
77
78
  push " return #{code};"
78
- push "} catch ($err) {"
79
- push " if (Opal.rescue($err, [Opal.Exception])) {"
80
- push " try {"
81
- push " return false;"
82
- push " } finally { Opal.pop_exception() }"
83
- push " } else { throw $err; }"
84
- push "}})())"
79
+ push '} catch ($err) {'
80
+ push ' if (Opal.rescue($err, [Opal.Exception])) {'
81
+ push ' try {'
82
+ push ' return false;'
83
+ push ' } finally { Opal.pop_exception() }'
84
+ push ' } else { throw $err; }'
85
+ push '}})())'
85
86
 
86
87
  returning_tmp
87
88
  end
@@ -96,17 +97,17 @@ module Opal
96
97
 
97
98
  if recv
98
99
  recv_code = compile_defined(recv)
99
- push " && "
100
+ push ' && '
100
101
 
101
102
  if recv.type == :send
102
103
  recv_code = compile_send_recv_doesnt_raise(recv_code)
103
- push " && "
104
+ push ' && '
104
105
  end
105
106
 
106
107
  recv_tmp = scope.new_temp
107
108
  push "(#{recv_tmp} = ", recv_code, ", #{recv_tmp}) && "
108
109
  else
109
- recv_tmp = "self"
110
+ recv_tmp = 'self'
110
111
  end
111
112
 
112
113
  recv_value_tmp = scope.new_temp
@@ -122,7 +123,7 @@ module Opal
122
123
  when :block_pass
123
124
  # ignoring
124
125
  else
125
- push " && "
126
+ push ' && '
126
127
  compile_defined(arg)
127
128
  end
128
129
  end
@@ -143,13 +144,13 @@ module Opal
143
144
  tmp
144
145
  end
145
146
 
146
- def compile_defined_super(node)
147
+ def compile_defined_super
147
148
  push expr s(:defined_super)
148
149
  end
149
150
 
150
- def compile_defined_yield(node)
151
+ def compile_defined_yield
151
152
  scope.uses_block!
152
- block_name = scope.block_name || (parent = scope.find_parent_def && parent.block_name)
153
+ block_name = scope.block_name || scope.find_parent_def.block_name
153
154
  push "(#{block_name} != null && #{block_name} !== nil)"
154
155
  block_name
155
156
  end
@@ -164,17 +165,16 @@ module Opal
164
165
  const_tmp = scope.new_temp
165
166
 
166
167
  if const_scope.nil?
167
- push "(#{const_tmp} = Opal.const_get_relative($nesting, '#{const_name}', 'skip_raise'))"
168
+ push "(#{const_tmp} = $$($nesting, '#{const_name}', 'skip_raise'))"
168
169
  elsif const_scope == s(:cbase)
169
- push "(#{const_tmp} = Opal.const_get_qualified('::', '#{const_name}', 'skip_raise'))"
170
+ push "(#{const_tmp} = $$$('::', '#{const_name}', 'skip_raise'))"
170
171
  else
171
172
  const_scope_tmp = compile_defined(const_scope)
172
- push " && (#{const_tmp} = Opal.const_get_qualified(#{const_scope_tmp}, '#{const_name}', 'skip_raise'))"
173
+ push " && (#{const_tmp} = $$$(#{const_scope_tmp}, '#{const_name}', 'skip_raise'))"
173
174
  end
174
175
  const_tmp
175
176
  end
176
177
 
177
-
178
178
  def compile_defined_cvar(node)
179
179
  cvar_name, _ = *node
180
180
  cvar_tmp = scope.new_temp
@@ -189,7 +189,7 @@ module Opal
189
189
  gvar_temp = scope.new_temp
190
190
 
191
191
  if %w[~ !].include? name
192
- push "(#{gvar_temp} = ", expr(node), " || true)"
192
+ push "(#{gvar_temp} = ", expr(node), ' || true)'
193
193
  else
194
194
  push "(#{gvar_temp} = $gvars[#{name.inspect}], #{gvar_temp} != null)"
195
195
  end
@@ -197,14 +197,14 @@ module Opal
197
197
  gvar_temp
198
198
  end
199
199
 
200
- def compile_defined_back_ref(node)
200
+ def compile_defined_back_ref
201
201
  helper :gvars
202
202
  back_ref_temp = scope.new_temp
203
203
  push "(#{back_ref_temp} = $gvars['~'], #{back_ref_temp} != null && #{back_ref_temp} !== nil)"
204
204
  back_ref_temp
205
205
  end
206
206
 
207
- def compile_defined_nth_ref(node)
207
+ def compile_defined_nth_ref
208
208
  helper :gvars
209
209
 
210
210
  nth_ref_tmp = scope.new_temp
@@ -214,7 +214,7 @@ module Opal
214
214
 
215
215
  def compile_defined_array(node)
216
216
  node.children.each_with_index do |child, idx|
217
- push " && " unless idx == 0
217
+ push ' && ' unless idx == 0
218
218
  compile_defined(child)
219
219
  end
220
220
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'opal/nodes/base'
3
4
 
4
5
  module Opal
@@ -10,7 +11,7 @@ module Opal
10
11
 
11
12
  def compile
12
13
  children.each do |child|
13
- line "Opal.udef(self, '$' + ", expr(child), ");"
14
+ line "Opal.udef(self, '$' + ", expr(child), ');'
14
15
  end
15
16
  end
16
17
  end
@@ -21,7 +22,7 @@ module Opal
21
22
  children :new_name, :old_name
22
23
 
23
24
  def compile
24
- push "Opal.alias(self, ", expr(new_name), ", ", expr(old_name), ")"
25
+ push 'Opal.alias(self, ', expr(new_name), ', ', expr(old_name), ')'
25
26
  end
26
27
  end
27
28
 
@@ -29,7 +30,7 @@ module Opal
29
30
  handle :begin
30
31
 
31
32
  def compile
32
- return push "nil" if children.empty?
33
+ return push 'nil' if children.empty?
33
34
 
34
35
  if stmt?
35
36
  compile_children(children, @level)
@@ -57,11 +58,11 @@ module Opal
57
58
 
58
59
  def compile_children(children, level)
59
60
  children.each do |child|
60
- line process(child, level), ";"
61
+ line process(child, level), ';'
61
62
  end
62
63
  end
63
64
 
64
- COMPLEX_CHILDREN = [:while, :while_post, :until, :until_post, :js_return]
65
+ COMPLEX_CHILDREN = %i[while while_post until until_post js_return].freeze
65
66
 
66
67
  def simple_children?
67
68
  children.none? do |child|
@@ -70,9 +71,11 @@ module Opal
70
71
  end
71
72
 
72
73
  def compile_inline_children(children, level)
73
- children.map do |child|
74
+ processed_children = children.map do |child|
74
75
  process(child, level)
75
- end.reject(&:empty?).each_with_index do |child, idx|
76
+ end
77
+
78
+ processed_children.reject(&:empty?).each_with_index do |child, idx|
76
79
  push ', ' unless idx == 0
77
80
  push child
78
81
  end
@@ -1,28 +1,20 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'opal/nodes/def'
3
4
 
4
5
  module Opal
5
6
  module Nodes
6
7
  class DefsNode < DefNode
7
8
  handle :defs
8
- children :recvr, :mid, :args, :stmts
9
-
10
- def extract_block_arg
11
- *regular_args, last_arg = args.children
12
- if last_arg && last_arg.type == :blockarg
13
- @block_arg = last_arg.children[0]
14
- @sexp = @sexp.updated(nil, [
15
- recvr,
16
- mid,
17
- s(:args, *regular_args),
18
- stmts
19
- ])
20
- end
21
- end
9
+ children :recvr, :mid, :inline_args, :stmts
22
10
 
23
11
  def wrap_with_definition
24
- unshift "Opal.defs(", expr(recvr), ", '$#{mid}', "
25
- push ")"
12
+ unshift 'Opal.defs(', expr(recvr), ", '$#{mid}', "
13
+ push ')'
14
+
15
+ if expr?
16
+ wrap '(', ", nil) && '#{mid}'"
17
+ end
26
18
  end
27
19
  end
28
20
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'opal/nodes/base'
3
4
 
4
5
  module Opal
@@ -26,7 +27,7 @@ module Opal
26
27
  end
27
28
 
28
29
  def simple_keys?
29
- keys.all? { |key| [:sym, :str].include?(key.type) }
30
+ keys.all? { |key| %i[sym str].include?(key.type) }
30
31
  end
31
32
 
32
33
  def compile
@@ -69,7 +70,7 @@ module Opal
69
70
  if idx == 0
70
71
  push fragment
71
72
  else
72
- push ".$merge(", fragment, ")"
73
+ push '.$merge(', fragment, ')'
73
74
  end
74
75
  end
75
76
  end
@@ -106,7 +107,7 @@ module Opal
106
107
  push hash_obj[key]
107
108
  end
108
109
 
109
- wrap "$hash2([#{hash_keys.join ', '}], {", "})"
110
+ wrap "$hash2([#{hash_keys.join ', '}], {", '})'
110
111
  end
111
112
  end
112
113
 
@@ -115,7 +116,7 @@ module Opal
115
116
  children :value
116
117
 
117
118
  def compile
118
- push "Opal.to_hash(", expr(value), ")"
119
+ push 'Opal.to_hash(', expr(value), ')'
119
120
  end
120
121
  end
121
122
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'opal/regexp_anchors'
3
4
 
4
5
  module Opal
@@ -18,7 +19,7 @@ module Opal
18
19
  # have a '.' prefix (for dot-calling), otherwise it will be
19
20
  # wrapped in brackets to use reference notation calling.
20
21
  def mid_to_jsid(mid)
21
- if /\=|\+|\-|\*|\/|\!|\?|<|\>|\&|\||\^|\%|\~|\[/ =~ mid.to_s
22
+ if %r{\=|\+|\-|\*|\/|\!|\?|<|\>|\&|\||\^|\%|\~|\[} =~ mid.to_s
22
23
  "['$#{mid}']"
23
24
  else
24
25
  '.$' + mid
@@ -48,7 +49,7 @@ module Opal
48
49
  end
49
50
 
50
51
  helper :truthy
51
- [fragment("$truthy("),expr(sexp),fragment(")")]
52
+ [fragment('$truthy('), expr(sexp), fragment(')')]
52
53
  end
53
54
 
54
55
  def js_falsy(sexp)
@@ -61,7 +62,7 @@ module Opal
61
62
  end
62
63
 
63
64
  helper :falsy
64
- [fragment("$falsy("),expr(sexp),fragment(")")]
65
+ [fragment('$falsy('), expr(sexp), fragment(')')]
65
66
  end
66
67
 
67
68
  def js_truthy_optimize(sexp)
@@ -73,12 +74,12 @@ module Opal
73
74
  # Monkey patch method calls might return 'self'/aka a bridged instance and need
74
75
  # the nil check - see discussion at https://github.com/opal/opal/pull/1097
75
76
  allow_optimization_on_type = Compiler::COMPARE.include?(mid.to_s) &&
76
- receiver_handler_class &&
77
- receiver_handler_class.truthy_optimize?
77
+ receiver_handler_class &&
78
+ receiver_handler_class.truthy_optimize?
78
79
 
79
80
  if allow_optimization_on_type ||
80
- mid == :block_given? ||
81
- mid == :"=="
81
+ mid == :block_given? ||
82
+ mid == :"=="
82
83
  expr(sexp)
83
84
  end
84
85
  end
@@ -102,7 +103,6 @@ module Opal
102
103
  yield receiver_temp
103
104
  wrap '(', ')'
104
105
  end
105
-
106
106
  end
107
107
  end
108
108
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'opal/nodes/base'
3
4
 
4
5
  module Opal
@@ -9,29 +10,30 @@ module Opal
9
10
  children :test, :true_body, :false_body
10
11
 
11
12
  def compile
12
- truthy, falsy = self.truthy, self.falsy
13
+ truthy = self.truthy
14
+ falsy = self.falsy
13
15
 
14
- push "if (", js_truthy(test), ") {"
16
+ push 'if (', js_truthy(test), ') {'
15
17
 
16
18
  # skip if-body if no truthy sexp
17
19
  indent { line stmt(truthy) } if truthy
18
20
 
19
21
  if falsy
20
22
  if falsy.type == :if
21
- line "} else ", stmt(falsy)
23
+ line '} else ', stmt(falsy)
22
24
  else
25
+ line '} else {'
23
26
  indent do
24
- line "} else {"
25
27
  line stmt(falsy)
26
28
  end
27
29
 
28
- line "}"
30
+ line '}'
29
31
  end
30
32
  else
31
- push "}"
33
+ push '}'
32
34
  end
33
35
 
34
- wrap "(function() {", "; return nil; })()" if needs_wrapper?
36
+ wrap '(function() {', '; return nil; })()' if needs_wrapper?
35
37
  end
36
38
 
37
39
  def truthy
@@ -43,7 +45,7 @@ module Opal
43
45
  end
44
46
 
45
47
  def needs_wrapper?
46
- expr? or recv?
48
+ expr? || recv?
47
49
  end
48
50
  end
49
51
 
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'opal/nodes/node_with_args'
3
4
  require 'opal/rewriters/break_finder'
4
5
 
@@ -7,34 +8,20 @@ module Opal
7
8
  class IterNode < NodeWithArgs
8
9
  handle :iter
9
10
 
10
- children :args, :body
11
-
12
- attr_accessor :block_arg, :shadow_args
11
+ children :inline_args, :body
13
12
 
14
13
  def compile
15
14
  inline_params = nil
16
- extract_block_arg
17
- extract_shadow_args
18
- extract_underscore_args
19
- split_args
20
15
 
21
16
  to_vars = identity = body_code = nil
22
17
 
23
18
  in_scope do
24
- inline_params = process(inline_args_sexp)
25
-
26
19
  identity = scope.identify!
27
20
  add_temp "self = #{identity}.$$s || this"
28
21
 
29
- compile_block_arg
30
- compile_shadow_args
31
- compile_inline_args
32
- compile_post_args
33
- compile_norm_args
22
+ inline_params = process(inline_args)
34
23
 
35
- if compiler.arity_check?
36
- compile_arity_check
37
- end
24
+ compile_arity_check
38
25
 
39
26
  body_code = stmt(returned_body)
40
27
  to_vars = scope.to_vars
@@ -44,7 +31,7 @@ module Opal
44
31
 
45
32
  unshift to_vars
46
33
 
47
- unshift "(#{identity} = function(", inline_params, "){"
34
+ unshift "(#{identity} = function(", inline_params, '){'
48
35
  push "}, #{identity}.$$s = self,"
49
36
  push " #{identity}.$$brk = $brk," if contains_break?
50
37
  push " #{identity}.$$arity = #{arity},"
@@ -72,17 +59,6 @@ module Opal
72
59
  push " #{identity})"
73
60
  end
74
61
 
75
- def norm_args
76
- @norm_args ||= args.children.select { |arg| arg.type == :arg }
77
- end
78
-
79
- def compile_norm_args
80
- norm_args.each do |arg|
81
- arg_name, _ = *arg
82
- push "if (#{arg_name} == null) #{arg_name} = nil;"
83
- end
84
- end
85
-
86
62
  def compile_block_arg
87
63
  if block_arg
88
64
  scope.block_name = block_arg
@@ -94,44 +70,6 @@ module Opal
94
70
  end
95
71
  end
96
72
 
97
- def extract_block_arg
98
- *regular_args, last_arg = args.children
99
- if last_arg && last_arg.type == :blockarg
100
- @block_arg = last_arg.children[0]
101
- @sexp = @sexp.updated(nil, [
102
- s(:args, *regular_args),
103
- body
104
- ])
105
- end
106
- end
107
-
108
- def compile_shadow_args
109
- shadow_args.each do |shadow_arg|
110
- arg_name = shadow_arg.children[0]
111
- scope.locals << arg_name
112
- scope.add_arg(arg_name)
113
- end
114
- end
115
-
116
- def extract_shadow_args
117
- @shadow_args = []
118
- valid_args = []
119
- return unless args
120
-
121
- args.children.each_with_index do |arg, idx|
122
- if arg.type == :shadowarg
123
- @shadow_args << arg
124
- else
125
- valid_args << arg
126
- end
127
- end
128
-
129
- @sexp = @sexp.updated(nil, [
130
- args.updated(nil, valid_args),
131
- body
132
- ])
133
- end
134
-
135
73
  def extract_underscore_args
136
74
  valid_args = []
137
75
  caught_blank_argument = false
@@ -148,56 +86,31 @@ module Opal
148
86
  end
149
87
  end
150
88
 
151
- @sexp = @sexp.updated(nil, [
152
- args.updated(nil, valid_args),
153
- body
154
- ])
89
+ @sexp = @sexp.updated(
90
+ nil, [
91
+ args.updated(nil, valid_args),
92
+ body
93
+ ]
94
+ )
155
95
  end
156
96
 
157
97
  def returned_body
158
98
  compiler.returns(body || s(:nil))
159
99
  end
160
100
 
161
- def mlhs_args
162
- scope.mlhs_mapping.keys
163
- end
164
-
165
101
  def has_top_level_mlhs_arg?
166
- args.children.any? { |arg| arg.type == :mlhs }
102
+ original_args.children.any? { |arg| arg.type == :mlhs }
167
103
  end
168
104
 
169
105
  def has_trailing_comma_in_args?
170
- if args.loc && args.loc.expression
171
- args_source = args.loc.expression.source
106
+ if original_args.loc && original_args.loc.expression
107
+ args_source = original_args.loc.expression.source
172
108
  args_source.match(/,\s*\|/)
173
109
  end
174
110
  end
175
111
 
176
- # Returns code used in debug mode to check arity of method call
177
- def compile_arity_check
178
- if arity_checks.size > 0
179
- parent_scope = scope
180
- while !(parent_scope.top? || parent_scope.def? || parent_scope.class_scope?)
181
- parent_scope = parent_scope.parent
182
- end
183
-
184
- context = if parent_scope.top?
185
- "'<main>'"
186
- elsif parent_scope.def?
187
- "'#{parent_scope.mid}'"
188
- elsif parent_scope.class?
189
- "'<class:#{parent_scope.name}>'"
190
- elsif parent_scope.module?
191
- "'<module:#{parent_scope.name}>'"
192
- end
193
-
194
- identity = scope.identity
195
-
196
- line "if (#{identity}.$$is_lambda || #{identity}.$$define_meth) {"
197
- line " var $arity = arguments.length;"
198
- line " if (#{arity_checks.join(' || ')}) { Opal.block_ac($arity, #{arity}, #{context}); }"
199
- line "}"
200
- end
112
+ def arity_check_node
113
+ s(:iter_arity_check, original_args)
201
114
  end
202
115
 
203
116
  def contains_break?