opal 1.7.4 → 1.8.0.alpha1

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 (211) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +9 -9
  3. data/.rubocop/todo.yml +2 -2
  4. data/.rubocop.yml +17 -10
  5. data/.rubocop_todo.yml +311 -0
  6. data/CHANGELOG.md +1 -15
  7. data/UNRELEASED.md +78 -1
  8. data/benchmark-ips/bm_block_vs_yield.rb +3 -0
  9. data/benchmark-ips/bm_slice_or_not.rb +53 -0
  10. data/docs/bridging.md +112 -0
  11. data/docs/compiled_ruby.md +10 -10
  12. data/docs/getting_started.md +18 -22
  13. data/lib/opal/cli_runners/chrome.rb +1 -5
  14. data/lib/opal/cli_runners/chrome_cdp_interface.rb +1 -0
  15. data/lib/opal/cli_runners/firefox_cdp_interface.rb +1 -0
  16. data/lib/opal/compiler.rb +33 -1
  17. data/lib/opal/nodes/args/extract_kwoptarg.rb +2 -1
  18. data/lib/opal/nodes/call.rb +1 -1
  19. data/lib/opal/nodes/call_special.rb +71 -47
  20. data/lib/opal/nodes/hash.rb +14 -30
  21. data/lib/opal/nodes/if.rb +37 -29
  22. data/lib/opal/nodes/literal.rb +5 -1
  23. data/lib/opal/nodes/x_string.rb +13 -0
  24. data/lib/opal/parser/patch.rb +1 -0
  25. data/lib/opal/rewriters/for_rewriter.rb +36 -24
  26. data/lib/opal/simple_server.rb +2 -2
  27. data/lib/opal/source_map/file.rb +1 -1
  28. data/lib/opal/version.rb +1 -1
  29. data/opal/corelib/array/pack.rb +1 -0
  30. data/opal/corelib/array.rb +71 -43
  31. data/opal/corelib/basic_object.rb +1 -0
  32. data/opal/corelib/binding.rb +2 -0
  33. data/opal/corelib/boolean.rb +1 -0
  34. data/opal/corelib/class.rb +2 -0
  35. data/opal/corelib/comparable.rb +1 -0
  36. data/opal/corelib/complex.rb +2 -0
  37. data/opal/corelib/constants.rb +2 -2
  38. data/opal/corelib/dir.rb +2 -0
  39. data/opal/corelib/enumerable.rb +3 -2
  40. data/opal/corelib/enumerator/arithmetic_sequence.rb +2 -0
  41. data/opal/corelib/enumerator/chain.rb +1 -0
  42. data/opal/corelib/enumerator/generator.rb +1 -0
  43. data/opal/corelib/enumerator/lazy.rb +1 -0
  44. data/opal/corelib/enumerator/yielder.rb +2 -0
  45. data/opal/corelib/enumerator.rb +1 -0
  46. data/opal/corelib/error/errno.rb +2 -0
  47. data/opal/corelib/error.rb +12 -0
  48. data/opal/corelib/file.rb +1 -0
  49. data/opal/corelib/hash.rb +197 -504
  50. data/opal/corelib/helpers.rb +1 -0
  51. data/opal/corelib/io.rb +2 -0
  52. data/opal/corelib/irb.rb +2 -0
  53. data/opal/corelib/kernel/format.rb +1 -0
  54. data/opal/corelib/kernel.rb +70 -14
  55. data/opal/corelib/main.rb +2 -0
  56. data/opal/corelib/marshal/read_buffer.rb +2 -0
  57. data/opal/corelib/marshal/write_buffer.rb +2 -0
  58. data/opal/corelib/math/polyfills.rb +2 -0
  59. data/opal/corelib/math.rb +1 -0
  60. data/opal/corelib/method.rb +2 -0
  61. data/opal/corelib/module.rb +1 -0
  62. data/opal/corelib/nil.rb +3 -1
  63. data/opal/corelib/number.rb +2 -0
  64. data/opal/corelib/numeric.rb +2 -0
  65. data/opal/corelib/object_space.rb +1 -0
  66. data/opal/corelib/pack_unpack/format_string_parser.rb +2 -0
  67. data/opal/corelib/proc.rb +30 -28
  68. data/opal/corelib/process.rb +2 -0
  69. data/opal/corelib/random/formatter.rb +2 -0
  70. data/opal/corelib/random/math_random.js.rb +2 -0
  71. data/opal/corelib/random/mersenne_twister.rb +2 -0
  72. data/opal/corelib/random/seedrandom.js.rb +2 -0
  73. data/opal/corelib/random.rb +1 -0
  74. data/opal/corelib/range.rb +34 -12
  75. data/opal/corelib/rational.rb +2 -0
  76. data/opal/corelib/regexp.rb +1 -0
  77. data/opal/corelib/runtime.js +187 -231
  78. data/opal/corelib/set.rb +2 -0
  79. data/opal/corelib/string/encoding.rb +3 -0
  80. data/opal/corelib/string/unpack.rb +2 -0
  81. data/opal/corelib/string.rb +20 -12
  82. data/opal/corelib/struct.rb +3 -1
  83. data/opal/corelib/time.rb +1 -0
  84. data/opal/corelib/trace_point.rb +2 -0
  85. data/opal/corelib/unsupported.rb +2 -0
  86. data/opal/corelib/variables.rb +2 -0
  87. data/opal.gemspec +2 -2
  88. data/spec/filters/bugs/array.rb +0 -2
  89. data/spec/filters/bugs/enumerable.rb +0 -3
  90. data/spec/filters/bugs/hash.rb +0 -13
  91. data/spec/filters/bugs/kernel.rb +0 -38
  92. data/spec/filters/bugs/range.rb +0 -1
  93. data/spec/filters/bugs/ruby-32.rb +0 -2
  94. data/spec/filters/bugs/string.rb +0 -1
  95. data/spec/filters/bugs/struct.rb +1 -5
  96. data/spec/filters/unsupported/hash.rb +1 -0
  97. data/spec/lib/compiler_spec.rb +24 -17
  98. data/spec/mspec-opal/formatters.rb +2 -0
  99. data/spec/mspec-opal/runner.rb +2 -0
  100. data/spec/opal/core/array/dup_spec.rb +2 -0
  101. data/spec/opal/core/exception_spec.rb +2 -0
  102. data/spec/opal/core/hash/internals_spec.rb +154 -206
  103. data/spec/opal/core/hash_spec.rb +2 -0
  104. data/spec/opal/core/iterable_props_spec.rb +2 -0
  105. data/spec/opal/core/kernel/at_exit_spec.rb +2 -0
  106. data/spec/opal/core/kernel/respond_to_spec.rb +2 -0
  107. data/spec/opal/core/language/arguments/mlhs_arg_spec.rb +2 -0
  108. data/spec/opal/core/language/safe_navigator_spec.rb +2 -0
  109. data/spec/opal/core/language/xstring_send_spec.rb +15 -0
  110. data/spec/opal/core/language/xstring_spec.rb +2 -0
  111. data/spec/opal/core/language_spec.rb +2 -0
  112. data/spec/opal/core/module_spec.rb +44 -0
  113. data/spec/opal/core/number/to_i_spec.rb +2 -0
  114. data/spec/opal/core/object_id_spec.rb +2 -0
  115. data/spec/opal/core/regexp/match_spec.rb +2 -0
  116. data/spec/opal/core/runtime/bridged_classes_spec.rb +38 -0
  117. data/spec/opal/core/runtime/constants_spec.rb +2 -0
  118. data/spec/opal/core/runtime/eval_spec.rb +2 -0
  119. data/spec/opal/core/runtime/exit_spec.rb +2 -0
  120. data/spec/opal/core/runtime/is_a_spec.rb +2 -0
  121. data/spec/opal/core/runtime/loaded_spec.rb +2 -0
  122. data/spec/opal/core/runtime/method_missing_spec.rb +2 -0
  123. data/spec/opal/core/runtime/rescue_spec.rb +2 -0
  124. data/spec/opal/core/runtime/string_spec.rb +2 -0
  125. data/spec/opal/core/runtime/truthy_spec.rb +2 -0
  126. data/spec/opal/core/runtime_spec.rb +2 -6
  127. data/spec/opal/core/string/to_sym_spec.rb +2 -0
  128. data/spec/opal/stdlib/js_spec.rb +2 -0
  129. data/spec/opal/stdlib/native/alias_native_spec.rb +2 -0
  130. data/spec/opal/stdlib/native/array_spec.rb +2 -0
  131. data/spec/opal/stdlib/native/date_spec.rb +2 -0
  132. data/spec/opal/stdlib/native/each_spec.rb +2 -0
  133. data/spec/opal/stdlib/native/element_reference_spec.rb +2 -0
  134. data/spec/opal/stdlib/native/exposure_spec.rb +2 -0
  135. data/spec/opal/stdlib/native/ext_spec.rb +2 -0
  136. data/spec/opal/stdlib/native/hash_spec.rb +30 -2
  137. data/spec/opal/stdlib/native/initialize_spec.rb +2 -0
  138. data/spec/opal/stdlib/native/method_missing_spec.rb +2 -0
  139. data/spec/opal/stdlib/native/native_alias_spec.rb +2 -0
  140. data/spec/opal/stdlib/native/native_class_spec.rb +2 -0
  141. data/spec/opal/stdlib/native/native_module_spec.rb +2 -0
  142. data/spec/opal/stdlib/native/native_reader_spec.rb +2 -0
  143. data/spec/opal/stdlib/native/native_writer_spec.rb +2 -0
  144. data/spec/opal/stdlib/native/new_spec.rb +2 -0
  145. data/spec/opal/stdlib/native/struct_spec.rb +2 -0
  146. data/spec/spec_helper.rb +2 -0
  147. data/stdlib/await.rb +1 -0
  148. data/stdlib/base64.rb +2 -0
  149. data/stdlib/bigdecimal/bignumber.js.rb +2 -0
  150. data/stdlib/bigdecimal/util.rb +1 -0
  151. data/stdlib/bigdecimal.rb +2 -0
  152. data/stdlib/buffer/array.rb +2 -0
  153. data/stdlib/buffer/view.rb +2 -0
  154. data/stdlib/buffer.rb +2 -0
  155. data/stdlib/cgi.rb +14 -0
  156. data/stdlib/console.rb +2 -0
  157. data/stdlib/date/date_time.rb +2 -0
  158. data/stdlib/date.rb +2 -0
  159. data/stdlib/delegate.rb +2 -0
  160. data/stdlib/deno/base.rb +2 -0
  161. data/stdlib/deno/file.rb +2 -0
  162. data/stdlib/erb.rb +2 -0
  163. data/stdlib/gjs/io.rb +2 -0
  164. data/stdlib/gjs/kernel.rb +2 -0
  165. data/stdlib/headless_browser/base.rb +2 -0
  166. data/stdlib/headless_browser/file.rb +1 -0
  167. data/stdlib/headless_browser.rb +1 -0
  168. data/stdlib/js.rb +2 -0
  169. data/stdlib/json.rb +9 -15
  170. data/stdlib/logger.rb +2 -0
  171. data/stdlib/nashorn/file.rb +2 -0
  172. data/stdlib/nashorn/io.rb +2 -0
  173. data/stdlib/native.rb +48 -48
  174. data/stdlib/nodejs/base.rb +2 -0
  175. data/stdlib/nodejs/dir.rb +2 -0
  176. data/stdlib/nodejs/env.rb +2 -0
  177. data/stdlib/nodejs/file.rb +2 -0
  178. data/stdlib/nodejs/fileutils.rb +2 -0
  179. data/stdlib/nodejs/io.rb +2 -0
  180. data/stdlib/nodejs/js-yaml-3-6-1.js +1 -1
  181. data/stdlib/nodejs/kernel.rb +2 -0
  182. data/stdlib/nodejs/open-uri.rb +2 -0
  183. data/stdlib/nodejs/pathname.rb +2 -0
  184. data/stdlib/nodejs/require.rb +2 -0
  185. data/stdlib/nodejs/yaml.rb +9 -3
  186. data/stdlib/opal/miniracer.rb +2 -0
  187. data/stdlib/opal-parser.rb +8 -1
  188. data/stdlib/opal-platform.rb +2 -0
  189. data/stdlib/opal-replutils.rb +2 -0
  190. data/stdlib/open-uri.rb +4 -1
  191. data/stdlib/ostruct.rb +4 -2
  192. data/stdlib/pathname.rb +2 -0
  193. data/stdlib/pp.rb +1 -0
  194. data/stdlib/promise/v2.rb +2 -0
  195. data/stdlib/quickjs/io.rb +2 -0
  196. data/stdlib/quickjs/kernel.rb +2 -0
  197. data/stdlib/quickjs.rb +2 -0
  198. data/stdlib/securerandom.rb +2 -0
  199. data/stdlib/strscan.rb +2 -0
  200. data/stdlib/time.rb +2 -0
  201. data/stdlib/uri.rb +1 -0
  202. data/tasks/performance/optimization_status.rb +2 -0
  203. data/tasks/testing.rake +1 -0
  204. data/test/nodejs/test_await.rb +1 -0
  205. data/test/nodejs/test_dir.rb +2 -0
  206. data/test/nodejs/test_error.rb +2 -0
  207. data/test/nodejs/test_file.rb +2 -0
  208. data/test/nodejs/test_string.rb +2 -0
  209. data/test/nodejs/test_yaml.rb +20 -0
  210. metadata +22 -13
  211. data/spec/filters/bugs/openstruct.rb +0 -8
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  module FileUtils
2
4
  extend self
3
5
  `var __fs__ = #{File}.__fs__`
data/stdlib/nodejs/io.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  require 'nodejs/file'
2
4
 
3
5
  %x{
@@ -3848,7 +3848,7 @@ module.exports = new Type('tag:yaml.org,2002:timestamp', {
3848
3848
  var yaml = require('./lib/js-yaml.js');
3849
3849
 
3850
3850
 
3851
- module.exports = yaml;
3851
+ module.exports = globalThis.jsyaml = yaml;
3852
3852
 
3853
3853
  },{"./lib/js-yaml.js":1}]},{},[])("/")
3854
3854
  });
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  require 'buffer'
2
4
  require 'corelib/process/status'
3
5
 
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  module OpenURI
2
4
  @__xmlhttprequest__ = `require('unxhr')`
3
5
  `var __XMLHttpRequest__ = #{@__xmlhttprequest__}.XMLHttpRequest`
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  require 'pathname'
2
4
 
3
5
  class Pathname
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  require 'opal-parser'
2
4
 
3
5
  module Kernel
@@ -1,12 +1,18 @@
1
+ # backtick_javascript: true
2
+
1
3
  require 'native'
2
- require_relative './js-yaml-3-6-1'
4
+ require 'nodejs/js-yaml-3-6-1'
3
5
 
4
6
  module YAML
5
- @__yaml__ = `jsyaml`
7
+ @__yaml__ = `globalThis.jsyaml`
6
8
  `var __yaml__ = #{@__yaml__}`
7
9
 
8
10
  def self.load_path(path)
9
- loaded = `__yaml__.safeLoad(#{File}.__fs__.readFileSync(#{path}, 'utf8'))`
11
+ load(`#{File}.__fs__.readFileSync(#{path}, 'utf8')`)
12
+ end
13
+
14
+ def self.load(data)
15
+ loaded = `__yaml__.safeLoad(data)`
10
16
  loaded = Hash.new(loaded) if native?(loaded)
11
17
  loaded
12
18
  end
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  `/* global opalminiracer */`
2
4
 
3
5
  # Compatibility utilities for the API we provide in
@@ -1,3 +1,6 @@
1
+ # helpers: call, raise
2
+ # backtick_javascript: true
3
+
1
4
  # parser uses String#unpack
2
5
  require 'corelib/string/unpack'
3
6
 
@@ -10,7 +13,9 @@ module Kernel
10
13
  str = ::Opal.coerce_to!(str, String, :to_str)
11
14
  default_eval_options = { file: file || '(eval)', eval: true }
12
15
  compiling_options = __OPAL_COMPILER_CONFIG__.merge(default_eval_options)
13
- code = `Opal.compile(str, compiling_options)`
16
+ compiler = Opal::Compiler.new(str, compiling_options)
17
+ code = compiler.compile
18
+ code += compiler.source_map.to_data_uri_comment unless compiling_options[:no_source_map]
14
19
  if binding
15
20
  binding.js_eval(code)
16
21
  else
@@ -33,6 +38,8 @@ module Kernel
33
38
  end
34
39
 
35
40
  %x{
41
+ var $has_own = Object.hasOwn || $call.bind(Object.prototype.hasOwnProperty);
42
+
36
43
  Opal.compile = function(str, options) {
37
44
  try {
38
45
  str = #{::Opal.coerce_to!(`str`, String, :to_str)}
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  `/* global Java, GjsFileImporter, Deno */`
2
4
 
3
5
  browser = `typeof(document) !== "undefined"`
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  require 'pp'
2
4
  require 'stringio'
3
5
 
data/stdlib/open-uri.rb CHANGED
@@ -1,5 +1,8 @@
1
- # Copied from https://raw.githubusercontent.com/ruby/ruby/373babeaac8c3e663e1ded74a9f06ac94a671ed9/lib/open-uri.rb
2
1
  # frozen_string_literal: true
2
+ # backtick_javascript: true
3
+
4
+ # Copied from https://raw.githubusercontent.com/ruby/ruby/373babeaac8c3e663e1ded74a9f06ac94a671ed9/lib/open-uri.rb
5
+
3
6
  require 'stringio'
4
7
  require 'corelib/array/pack'
5
8
 
data/stdlib/ostruct.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  class OpenStruct
2
4
  def initialize(hash = nil)
3
5
  @table = {}
@@ -62,8 +64,8 @@ class OpenStruct
62
64
  @table.eql? other.instance_variable_get(:@table)
63
65
  end
64
66
 
65
- def to_h
66
- @table.dup
67
+ def to_h(&block)
68
+ block_given? ? @table.to_h(&block) : @table.dup
67
69
  end
68
70
 
69
71
  def to_n
data/stdlib/pathname.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  require 'corelib/comparable'
2
4
 
3
5
  # Portions from Author:: Tanaka Akira <akr@m17n.org>
data/stdlib/pp.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+ # backtick_javascript: true
2
3
 
3
4
  # Opal: load stdlib/thread.rb
4
5
  require 'thread'
data/stdlib/promise/v2.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  # {Promise} is used to help structure asynchronous code.
2
4
  #
3
5
  # It is available in the Opal standard library, and can be required in any Opal
data/stdlib/quickjs/io.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  %x{
2
4
  Opal.gvars.stdout.write_proc = function(s) {
3
5
  std.out.printf("%s", s);
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  ARGV = `scriptArgs`
2
4
 
3
5
  `Opal.exit = std.exit`
data/stdlib/quickjs.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  `/* global std, scriptArgs */`
2
4
 
3
5
  require 'quickjs/io'
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  require 'corelib/random/formatter'
2
4
 
3
5
  module SecureRandom
data/stdlib/strscan.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  class StringScanner
2
4
  attr_reader :pos, :matched
3
5
 
data/stdlib/time.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  class Time
2
4
  def self.parse(str)
3
5
  %x{
data/stdlib/uri.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # backtick_javascript: true
1
2
  # frozen_string_literal: true
2
3
 
3
4
  module URI
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  klasses = [
2
4
  Array,
3
5
  Class,
data/tasks/testing.rake CHANGED
@@ -389,6 +389,7 @@ node_platforms.each do |platform|
389
389
  nodejs/test_opal_builder.rb
390
390
  nodejs/test_string.rb
391
391
  nodejs/test_await.rb
392
+ nodejs/test_yaml.rb
392
393
  ]
393
394
 
394
395
  filename = "tmp/minitest_node_nodejs.rb"
@@ -173,6 +173,7 @@ class TestAwait < Test::Unit::TestCase
173
173
  test_autoawait_instance_exec_await: [<<~RUBY, 2*3*5*7*11*13],
174
174
  #{autoawaitheader}
175
175
  # await: *await*
176
+ # backtick_javascript: true
176
177
  $taval = 1
177
178
  module AutoawaitTemporary1
178
179
  $block_with_module_self = proc do
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  # Copied from cruby and modified to skip unsupported syntaxes
2
4
  require 'test/unit'
3
5
  require 'nodejs'
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  require 'test/unit'
2
4
  require 'nodejs'
3
5
 
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  # Copied from cruby and modified to skip unsupported syntaxes
2
4
  require 'test/unit'
3
5
  require 'nodejs'
@@ -1,3 +1,5 @@
1
+ # backtick_javascript: true
2
+
1
3
  require 'test/unit'
2
4
  require 'nodejs'
3
5
 
@@ -0,0 +1,20 @@
1
+ require 'test/unit'
2
+ require 'nodejs'
3
+ require 'nodejs/yaml'
4
+
5
+ class TestYAML < Test::Unit::TestCase
6
+ YAMLDOC = <<~YAML
7
+ ---
8
+ string: hello world
9
+ array: [1,2,3]
10
+ YAML
11
+
12
+ YAMLSTRUCT = {
13
+ "string" => "hello world",
14
+ "array" => [1,2,3]
15
+ }
16
+
17
+ def test_should_parse_yaml
18
+ assert_equal(YAML.load(YAMLDOC), YAMLSTRUCT)
19
+ end
20
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opal
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.4
4
+ version: 1.8.0.alpha1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elia Schito
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2023-09-14 00:00:00.000000000 Z
13
+ date: 2023-08-04 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: ast
@@ -178,28 +178,28 @@ dependencies:
178
178
  requirements:
179
179
  - - "~>"
180
180
  - !ruby/object:Gem::Version
181
- version: 0.67.0
181
+ version: '1.50'
182
182
  type: :development
183
183
  prerelease: false
184
184
  version_requirements: !ruby/object:Gem::Requirement
185
185
  requirements:
186
186
  - - "~>"
187
187
  - !ruby/object:Gem::Version
188
- version: 0.67.0
188
+ version: '1.50'
189
189
  - !ruby/object:Gem::Dependency
190
190
  name: rubocop-performance
191
191
  requirement: !ruby/object:Gem::Requirement
192
192
  requirements:
193
193
  - - "~>"
194
194
  - !ruby/object:Gem::Version
195
- version: 1.1.0
195
+ version: '1.1'
196
196
  type: :development
197
197
  prerelease: false
198
198
  version_requirements: !ruby/object:Gem::Requirement
199
199
  requirements:
200
200
  - - "~>"
201
201
  - !ruby/object:Gem::Version
202
- version: 1.1.0
202
+ version: '1.1'
203
203
  - !ruby/object:Gem::Dependency
204
204
  name: rack
205
205
  requirement: !ruby/object:Gem::Requirement
@@ -270,6 +270,7 @@ files:
270
270
  - ".rspec"
271
271
  - ".rubocop.yml"
272
272
  - ".rubocop/todo.yml"
273
+ - ".rubocop_todo.yml"
273
274
  - ".yardopts"
274
275
  - CHANGELOG.md
275
276
  - CONDUCT.md
@@ -290,6 +291,7 @@ files:
290
291
  - benchmark-ips/bm_constants_lookup.rb
291
292
  - benchmark-ips/bm_is_number.rb
292
293
  - benchmark-ips/bm_js_symbols_vs_strings.rb
294
+ - benchmark-ips/bm_slice_or_not.rb
293
295
  - benchmark-ips/bm_symbol_to_proc.rb
294
296
  - benchmark-ips/bm_truthy.rb
295
297
  - benchmark-ips/bm_while_true_vs_loop.rb
@@ -406,6 +408,7 @@ files:
406
408
  - bin/yarn
407
409
  - config.ru
408
410
  - docs/async.md
411
+ - docs/bridging.md
409
412
  - docs/cdp_common.json
410
413
  - docs/cdp_common.md
411
414
  - docs/compiled_ruby.md
@@ -728,7 +731,6 @@ files:
728
731
  - spec/filters/bugs/nilclass.rb
729
732
  - spec/filters/bugs/numeric.rb
730
733
  - spec/filters/bugs/objectspace.rb
731
- - spec/filters/bugs/openstruct.rb
732
734
  - spec/filters/bugs/pack_unpack.rb
733
735
  - spec/filters/bugs/pathname.rb
734
736
  - spec/filters/bugs/proc.rb
@@ -915,6 +917,7 @@ files:
915
917
  - spec/opal/core/language/safe_navigator_spec.rb
916
918
  - spec/opal/core/language/super_spec.rb
917
919
  - spec/opal/core/language/while_spec.rb
920
+ - spec/opal/core/language/xstring_send_spec.rb
918
921
  - spec/opal/core/language/xstring_spec.rb
919
922
  - spec/opal/core/language_spec.rb
920
923
  - spec/opal/core/marshal/dump_spec.rb
@@ -1005,6 +1008,7 @@ files:
1005
1008
  - stdlib/buffer.rb
1006
1009
  - stdlib/buffer/array.rb
1007
1010
  - stdlib/buffer/view.rb
1011
+ - stdlib/cgi.rb
1008
1012
  - stdlib/console.rb
1009
1013
  - stdlib/date.rb
1010
1014
  - stdlib/date/date_time.rb
@@ -1185,6 +1189,7 @@ files:
1185
1189
  - test/nodejs/test_opal_builder.rb
1186
1190
  - test/nodejs/test_pathname.rb
1187
1191
  - test/nodejs/test_string.rb
1192
+ - test/nodejs/test_yaml.rb
1188
1193
  - test/opal/cat.png
1189
1194
  - test/opal/http_server.rb
1190
1195
  - test/opal/promisev2/test_always.rb
@@ -1216,10 +1221,10 @@ licenses:
1216
1221
  metadata:
1217
1222
  homepage_uri: https://opalrb.com/
1218
1223
  bug_tracker_uri: https://github.com/opal/opal/issues
1219
- changelog_uri: https://github.com/opal/opal/blob/v1.7.4/CHANGELOG.md
1220
- readme_uri: https://github.com/opal/opal/blob/v1.7.4/README.md
1221
- api_documentation_uri: http://opalrb.com/docs/api/v1.7.4/index.html
1222
- guides_uri: http://opalrb.com/docs/guides/v1.7.4/index.html
1224
+ changelog_uri: https://github.com/opal/opal/blob/v1.8.0.alpha1/CHANGELOG.md
1225
+ readme_uri: https://github.com/opal/opal/blob/v1.8.0.alpha1/README.md
1226
+ api_documentation_uri: http://opalrb.com/docs/api/v1.8.0.alpha1/index.html
1227
+ guides_uri: http://opalrb.com/docs/guides/v1.8.0.alpha1/index.html
1223
1228
  chat_uri: https://gitter.im/opal/opal
1224
1229
  source_code_uri: https://github.com/opal/opal
1225
1230
  post_install_message:
@@ -1233,9 +1238,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
1233
1238
  version: '2.3'
1234
1239
  required_rubygems_version: !ruby/object:Gem::Requirement
1235
1240
  requirements:
1236
- - - ">="
1241
+ - - ">"
1237
1242
  - !ruby/object:Gem::Version
1238
- version: '0'
1243
+ version: 1.3.1
1239
1244
  requirements: []
1240
1245
  rubygems_version: 3.4.5
1241
1246
  signing_key:
@@ -1257,6 +1262,7 @@ test_files:
1257
1262
  - ".rspec"
1258
1263
  - ".rubocop.yml"
1259
1264
  - ".rubocop/todo.yml"
1265
+ - ".rubocop_todo.yml"
1260
1266
  - ".yardopts"
1261
1267
  - CHANGELOG.md
1262
1268
  - CONDUCT.md
@@ -1277,6 +1283,7 @@ test_files:
1277
1283
  - benchmark-ips/bm_constants_lookup.rb
1278
1284
  - benchmark-ips/bm_is_number.rb
1279
1285
  - benchmark-ips/bm_js_symbols_vs_strings.rb
1286
+ - benchmark-ips/bm_slice_or_not.rb
1280
1287
  - benchmark-ips/bm_symbol_to_proc.rb
1281
1288
  - benchmark-ips/bm_truthy.rb
1282
1289
  - benchmark-ips/bm_while_true_vs_loop.rb
@@ -1393,6 +1400,7 @@ test_files:
1393
1400
  - bin/yarn
1394
1401
  - config.ru
1395
1402
  - docs/async.md
1403
+ - docs/bridging.md
1396
1404
  - docs/cdp_common.json
1397
1405
  - docs/cdp_common.md
1398
1406
  - docs/compiled_ruby.md
@@ -1694,6 +1702,7 @@ test_files:
1694
1702
  - stdlib/buffer.rb
1695
1703
  - stdlib/buffer/array.rb
1696
1704
  - stdlib/buffer/view.rb
1705
+ - stdlib/cgi.rb
1697
1706
  - stdlib/console.rb
1698
1707
  - stdlib/date.rb
1699
1708
  - stdlib/date/date_time.rb
@@ -1,8 +0,0 @@
1
- # NOTE: run bin/format-filters after changing this file
2
- opal_filter "OpenStruct" do
3
- fails "OpenStruct#to_h with block coerces returned pair to Array with #to_ary" # Expected {"name"=>"John Smith", "age"=>70, "pension"=>300} == {"b"=>"b"} to be truthy but was false
4
- fails "OpenStruct#to_h with block converts [key, value] pairs returned by the block to a hash" # Expected {"name"=>"John Smith", "age"=>70, "pension"=>300} == {"name"=>"John SmithJohn Smith", "age"=>140, "pension"=>600} to be truthy but was false
5
- fails "OpenStruct#to_h with block does not coerce returned pair to Array with #to_a" # Expected TypeError (/wrong element type MockObject/) but no exception was raised ({"name"=>"John Smith", "age"=>70, "pension"=>300} was returned)
6
- fails "OpenStruct#to_h with block raises ArgumentError if block returns longer or shorter array" # Expected ArgumentError (/element has wrong array length/) but no exception was raised ({"name"=>"John Smith", "age"=>70, "pension"=>300} was returned)
7
- fails "OpenStruct#to_h with block raises TypeError if block returns something other than Array" # Expected TypeError (/wrong element type String/) but no exception was raised ({"name"=>"John Smith", "age"=>70, "pension"=>300} was returned)
8
- end