opal 1.1.1 → 1.2.0.beta1

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 (108) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +3 -2
  3. data/.github/ISSUE_TEMPLATE/bug-report.md +47 -0
  4. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  5. data/.github/workflows/build.yml +11 -5
  6. data/.gitignore +1 -0
  7. data/.jshintrc +1 -1
  8. data/Gemfile +0 -4
  9. data/HACKING.md +1 -1
  10. data/README.md +19 -15
  11. data/UNRELEASED.md +41 -0
  12. data/benchmark-ips/bm_array_unshift.rb +7 -0
  13. data/bin/opal-mspec +2 -0
  14. data/docs/compiler.md +1 -1
  15. data/examples/rack/Gemfile +0 -1
  16. data/examples/rack/Gemfile.lock +0 -4
  17. data/lib/opal/cli.rb +1 -0
  18. data/lib/opal/cli_options.rb +4 -0
  19. data/lib/opal/cli_runners/nodejs.rb +4 -0
  20. data/lib/opal/cli_runners/source-map-support-browser.js +3 -1
  21. data/lib/opal/cli_runners/source-map-support-node.js +3 -1
  22. data/lib/opal/cli_runners/source-map-support.js +3 -1
  23. data/lib/opal/compiler.rb +2 -2
  24. data/lib/opal/nodes/args/arity_check.rb +1 -0
  25. data/lib/opal/nodes/args/parameters.rb +6 -0
  26. data/lib/opal/nodes/class.rb +1 -13
  27. data/lib/opal/nodes/literal.rb +14 -7
  28. data/lib/opal/nodes/module.rb +13 -9
  29. data/lib/opal/nodes/variables.rb +13 -4
  30. data/lib/opal/nodes/while.rb +54 -17
  31. data/lib/opal/parser.rb +1 -5
  32. data/lib/opal/parser/patch.rb +34 -0
  33. data/lib/opal/repl.rb +7 -0
  34. data/lib/opal/rewriter.rb +2 -0
  35. data/lib/opal/rewriters/arguments.rb +4 -1
  36. data/lib/opal/rewriters/forward_args.rb +54 -0
  37. data/lib/opal/rewriters/logical_operator_assignment.rb +5 -2
  38. data/lib/opal/rewriters/opal_engine_check.rb +5 -7
  39. data/lib/opal/version.rb +1 -1
  40. data/opal/corelib/array.rb +42 -20
  41. data/opal/corelib/array/pack.rb +6 -1
  42. data/opal/corelib/complex.rb +2 -0
  43. data/opal/corelib/constants.rb +3 -3
  44. data/opal/corelib/hash.rb +36 -38
  45. data/opal/corelib/module.rb +2 -7
  46. data/opal/corelib/number.rb +2 -180
  47. data/opal/corelib/numeric.rb +156 -0
  48. data/opal/corelib/object_space.rb +102 -0
  49. data/opal/corelib/random.rb +31 -66
  50. data/opal/corelib/random/formatter.rb +122 -0
  51. data/opal/corelib/range.rb +50 -19
  52. data/opal/corelib/runtime.js +82 -21
  53. data/opal/corelib/string.rb +86 -52
  54. data/opal/corelib/string/encoding.rb +140 -25
  55. data/opal/corelib/string/unpack.rb +26 -40
  56. data/opal/opal.rb +1 -0
  57. data/opal/opal/full.rb +1 -0
  58. data/spec/filters/bugs/array.rb +0 -22
  59. data/spec/filters/bugs/basicobject.rb +3 -0
  60. data/spec/filters/bugs/encoding.rb +0 -2
  61. data/spec/filters/bugs/exception.rb +1 -0
  62. data/spec/filters/bugs/float.rb +0 -2
  63. data/spec/filters/bugs/hash.rb +2 -7
  64. data/spec/filters/bugs/integer.rb +0 -2
  65. data/spec/filters/bugs/kernel.rb +16 -3
  66. data/spec/filters/bugs/language.rb +6 -14
  67. data/spec/filters/bugs/marshal.rb +1 -3
  68. data/spec/filters/bugs/module.rb +16 -1
  69. data/spec/filters/bugs/numeric.rb +4 -12
  70. data/spec/filters/bugs/objectspace.rb +67 -0
  71. data/spec/filters/bugs/pack_unpack.rb +0 -9
  72. data/spec/filters/bugs/pathname.rb +1 -0
  73. data/spec/filters/bugs/proc.rb +8 -0
  74. data/spec/filters/bugs/random.rb +3 -6
  75. data/spec/filters/bugs/range.rb +83 -113
  76. data/spec/filters/bugs/set.rb +2 -0
  77. data/spec/filters/bugs/string.rb +31 -70
  78. data/spec/filters/bugs/struct.rb +2 -0
  79. data/spec/filters/bugs/time.rb +8 -2
  80. data/spec/filters/unsupported/float.rb +3 -0
  81. data/spec/filters/unsupported/freeze.rb +1 -0
  82. data/spec/filters/unsupported/integer.rb +3 -0
  83. data/spec/filters/unsupported/refinements.rb +5 -0
  84. data/spec/filters/unsupported/string.rb +100 -95
  85. data/spec/filters/unsupported/time.rb +4 -0
  86. data/spec/lib/compiler_spec.rb +16 -0
  87. data/spec/lib/rewriters/forward_args_spec.rb +61 -0
  88. data/spec/lib/rewriters/logical_operator_assignment_spec.rb +1 -1
  89. data/spec/lib/rewriters/numblocks_spec.rb +44 -0
  90. data/spec/lib/rewriters/opal_engine_check_spec.rb +49 -4
  91. data/spec/opal/core/language/forward_args_spec.rb +53 -0
  92. data/spec/opal/core/language/infinite_range_spec.rb +13 -0
  93. data/spec/opal/core/language/memoization_spec.rb +16 -0
  94. data/spec/opal/core/module_spec.rb +38 -2
  95. data/spec/opal/core/number/to_i_spec.rb +28 -0
  96. data/spec/opal/core/runtime/bridged_classes_spec.rb +16 -0
  97. data/spec/opal/core/runtime/constants_spec.rb +20 -1
  98. data/spec/opal/core/string/subclassing_spec.rb +16 -0
  99. data/spec/opal/core/string/unpack_spec.rb +22 -0
  100. data/spec/opal/core/string_spec.rb +4 -4
  101. data/spec/ruby_specs +4 -1
  102. data/stdlib/json.rb +3 -1
  103. data/stdlib/securerandom.rb +55 -35
  104. data/tasks/testing.rake +6 -3
  105. data/test/nodejs/test_string.rb +25 -0
  106. data/vendored-minitest/minitest/assertions.rb +2 -0
  107. metadata +31 -10
  108. data/lib/opal/parser/with_c_lexer.rb +0 -15
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ class MyStringSubclass < String
4
+ attr_reader :v
5
+ def initialize(s, v)
6
+ super(s)
7
+ @v = v
8
+ end
9
+ end
10
+
11
+ describe "String subclassing" do
12
+ it "should call initialize for subclasses" do
13
+ c = MyStringSubclass.new('s', 5)
14
+ [c, c.v].should == ['s', 5]
15
+ end
16
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'String#unpack' do
4
+ it 'correctly unpacks with U* strings with latin-1 characters' do
5
+ 'café'.unpack('U*').should == [99, 97, 102, 233]
6
+ [99, 97, 102, 233].pack('U*').unpack('U*').should == [99, 97, 102, 233]
7
+ end
8
+
9
+ it 'correctly unpacks with U* strings with latin-2 characters' do
10
+ 'pół'.unpack('U*').should == [112, 243, 322]
11
+ [112, 243, 322].pack('U*').unpack('U*').should == [112, 243, 322]
12
+ end
13
+
14
+ it 'correctly unpacks with c* strings with latin-2 characters' do
15
+ 'ść'.unpack('c*').should == [-59, -101, -60, -121]
16
+ end
17
+
18
+ it 'correctly unpacks with s* binary strings' do
19
+ "\xc8\x01".unpack('s*').should == [456]
20
+ [678].pack('s').unpack('s').should == [678]
21
+ end
22
+ end
@@ -19,10 +19,10 @@ describe 'Encoding' do
19
19
  Encoding.find('ascii').should == Encoding::ASCII
20
20
  Encoding.find('US-ASCII').should == Encoding::ASCII
21
21
  Encoding.find('us-ascii').should == Encoding::ASCII
22
- Encoding.find('ASCII-8BIT').should == Encoding::ASCII
23
- Encoding.find('ascii-8bit').should == Encoding::ASCII
24
- Encoding.find('BINARY').should == Encoding::ASCII
25
- Encoding.find('binary').should == Encoding::ASCII
22
+ Encoding.find('ASCII-8BIT').should == Encoding::BINARY
23
+ Encoding.find('ascii-8bit').should == Encoding::BINARY
24
+ Encoding.find('BINARY').should == Encoding::BINARY
25
+ Encoding.find('binary').should == Encoding::BINARY
26
26
  end
27
27
  end
28
28
  end
data/spec/ruby_specs CHANGED
@@ -106,6 +106,9 @@ ruby/core/marshal/minor_version_spec
106
106
  ruby/core/nil
107
107
  ruby/core/numeric
108
108
 
109
+ ruby/core/objectspace
110
+ ruby/core/objectspace/weakmap
111
+
109
112
  ruby/core/proc
110
113
 
111
114
  ruby/core/range
@@ -175,7 +178,7 @@ ruby/library/pathname
175
178
  !ruby/library/pathname/empty_spec
176
179
  !ruby/library/pathname/glob_spec
177
180
  ruby/library/pp
178
- ruby/library/securerandom/hex_spec
181
+ ruby/library/securerandom
179
182
  ruby/library/set
180
183
  ruby/library/singleton
181
184
  ruby/library/stringio/each_line_spec
data/stdlib/json.rb CHANGED
@@ -186,7 +186,9 @@ class Numeric
186
186
  end
187
187
 
188
188
  class String
189
- alias to_json inspect
189
+ def to_json
190
+ `JSON.stringify(self)`
191
+ end
190
192
  end
191
193
 
192
194
  class Time
@@ -1,44 +1,64 @@
1
1
  module SecureRandom
2
- def self.hex(count = nil)
3
- count ||= 16
4
- count = count.to_int unless `typeof count === "number"`
5
- raise ArgumentError, 'count of hex numbers must be positive' if count < 0
6
- %x{
7
- count = Math.floor(count);
8
- var repeat = Math.floor(count / 6),
9
- remain = count % 6,
10
- remain_total = remain * 2,
11
- string = '',
12
- temp;
13
- for (var i = 0; i < repeat; i++) {
14
- // parseInt('ff'.repeat(6), 16) == 281474976710655
15
- temp = Math.floor(Math.random() * 281474976710655).toString(16);
16
- if (temp.length < 12) {
17
- // account for leading zeros gone missing
18
- temp = '0'.repeat(12 - temp.length) + temp;
19
- }
20
- string = string + temp;
21
- }
22
- if (remain > 0) {
23
- temp = Math.floor(Math.random()*parseInt('ff'.repeat(remain), 16)).toString(16);
24
- if (temp.length < remain_total) {
25
- // account for leading zeros gone missing
26
- temp = '0'.repeat(remain_total - temp.length) + temp;
2
+ extend Random::Formatter
3
+
4
+ %x{
5
+ var gen_random_bytes;
6
+
7
+ if ((Opal.global.crypto && Opal.global.crypto.getRandomValues) ||
8
+ (Opal.global.msCrypto && Opal.global.msCrypto.getRandomValues)) {
9
+ // This method is available in all non-ancient web browsers.
10
+
11
+ var crypto = Opal.global.crypto || Opal.global.msCrypto;
12
+ gen_random_bytes = function(count) {
13
+ var storage = new Uint8Array(count);
14
+ crypto.getRandomValues(storage);
15
+ return storage;
16
+ };
17
+ }
18
+ else if (Opal.global.crypto && Opal.global.crypto.randomBytes) {
19
+ // This method is available in Node.js
20
+
21
+ gen_random_bytes = function(count) {
22
+ return Opal.global.crypto.randomBytes(count);
23
+ };
24
+ }
25
+ else {
26
+ // Let's dangerously polyfill this interface with our MersenneTwister
27
+ // xor native JS Math.random xor something about current time...
28
+ // That's hardly secure, but the following warning should provide a person
29
+ // deploying the code a good idea on what he should do to make his deployment
30
+ // actually secure.
31
+ // It's possible to interface other libraries by adding an else if above if
32
+ // that's really desired.
33
+
34
+ #{warn 'Can\'t get a Crypto.getRandomValues interface or Crypto.randomBytes.' \
35
+ 'The random values generated with SecureRandom won\'t be ' \
36
+ 'cryptographically secure'}
37
+
38
+ gen_random_bytes = function(count) {
39
+ var storage = new Uint8Array(count);
40
+ for (var i = 0; i < count; i++) {
41
+ storage[i] = #{rand(0xff)} ^ Math.floor(Math.random() * 256);
42
+ storage[i] ^= +(new Date())>>#{rand(0xff)}&0xff;
27
43
  }
28
- string = string + temp;
44
+ return storage;
29
45
  }
30
- return string;
31
46
  }
32
- end
47
+ }
33
48
 
34
- def self.uuid
35
- 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.gsub(/[xy]/) do |ch,|
36
- %x{
37
- var r = Math.random() * 16 | 0,
38
- v = ch == "x" ? r : (r & 3 | 8);
49
+ def self.bytes(bytes = nil)
50
+ gen_random(bytes)
51
+ end
39
52
 
40
- return v.toString(16);
53
+ def self.gen_random(count = nil)
54
+ count = Random._verify_count(count)
55
+ out = ''
56
+ %x{
57
+ var bytes = gen_random_bytes(#{count});
58
+ for (var i = 0; i < #{count}; i++) {
59
+ out += String.fromCharCode(bytes[i]);
41
60
  }
42
- end
61
+ }
62
+ out.encode('ASCII-8BIT')
43
63
  end
44
64
  end
data/tasks/testing.rake CHANGED
@@ -113,6 +113,7 @@ module Testing
113
113
 
114
114
  require 'spec_helper'
115
115
  require 'opal/full'
116
+ require 'securerandom'
116
117
  #{enter_benchmarking_mode}
117
118
 
118
119
  #{filter_requires}
@@ -354,13 +355,14 @@ task :minitest_node_nodejs do
354
355
  files = %w[
355
356
  nodejs
356
357
  opal-parser
357
- nodejs/test_file.rb
358
358
  nodejs/test_dir.rb
359
359
  nodejs/test_env.rb
360
- nodejs/test_io.rb
361
360
  nodejs/test_error.rb
361
+ nodejs/test_file.rb
362
362
  nodejs/test_file_encoding.rb
363
+ nodejs/test_io.rb
363
364
  nodejs/test_opal_builder.rb
365
+ nodejs/test_string.rb
364
366
  ]
365
367
 
366
368
  filename = "tmp/minitest_node_nodejs.rb"
@@ -369,8 +371,9 @@ task :minitest_node_nodejs do
369
371
  stubs = "-soptparse -sio/console -stimeout -smutex_m -srubygems -stempfile -smonitor"
370
372
  includes = "-Itest -Ilib -Ivendored-minitest"
371
373
 
374
+ use_strict_opt = ENV['USE_STRICT'] ? ' --use-strict' : ''
372
375
  sh "ruby -rbundler/setup "\
373
- "exe/opal #{includes} #{stubs} -R#{platform} -Dwarning -A --enable-source-location #{filename}"
376
+ "exe/opal #{includes} #{stubs} -R#{platform} -Dwarning -A --enable-source-location#{use_strict_opt} #{filename}"
374
377
  end
375
378
 
376
379
  desc 'Run smoke tests with opal-rspec to see if something is broken'
@@ -0,0 +1,25 @@
1
+ require 'test/unit'
2
+ require 'nodejs'
3
+
4
+ class TestString < Test::Unit::TestCase
5
+ def test_should_get_bytes
6
+ assert_equal('foo'.bytesize, 3)
7
+ assert_equal('foo'.each_byte.to_a, [102, 111, 111])
8
+ assert_equal('foo'.bytes, [102, 111, 111])
9
+ assert_equal('foo'.bytes, [102, 111, 111])
10
+ end
11
+
12
+ def test_frozen
13
+ # Commented out examples somehow work in the strict mode,
14
+ # but otherwise they don't. I have unfortunately no idea
15
+ # on where it's mangled, but then I don't see it really
16
+ # as a really harmful thing.
17
+
18
+ #assert_equal((-'x').frozen?, true)
19
+ assert_equal((+'x').frozen?, false)
20
+ #assert_equal((-+-'x').frozen?, true)
21
+ assert_equal((+-+'x').frozen?, false)
22
+ #assert_equal((`'x'`).frozen?, true)
23
+ assert_equal((+`'x'`).frozen?, false)
24
+ end
25
+ end
@@ -417,6 +417,8 @@ module Minitest
417
417
  end
418
418
  end
419
419
 
420
+ alias capture_output capture_io
421
+
420
422
  ##
421
423
  # Captures $stdout and $stderr into strings, using Tempfile to
422
424
  # ensure that subprocess IO is captured as well.
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.1.1
4
+ version: 1.2.0.beta1
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: 2021-02-23 00:00:00.000000000 Z
13
+ date: 2021-07-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: ast
@@ -238,6 +238,8 @@ files:
238
238
  - ".codeclimate.yml"
239
239
  - ".gitattributes"
240
240
  - ".github/FUNDING.yml"
241
+ - ".github/ISSUE_TEMPLATE/bug-report.md"
242
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
241
243
  - ".github/workflows/build.yml"
242
244
  - ".gitignore"
243
245
  - ".gitmodules"
@@ -261,6 +263,7 @@ files:
261
263
  - benchmark-ips/README.md
262
264
  - benchmark-ips/bm_array_pop_1.rb
263
265
  - benchmark-ips/bm_array_shift.rb
266
+ - benchmark-ips/bm_array_unshift.rb
264
267
  - benchmark-ips/bm_block_vs_yield.rb
265
268
  - benchmark-ips/bm_case.rb
266
269
  - benchmark-ips/bm_constants_lookup.rb
@@ -536,7 +539,6 @@ files:
536
539
  - lib/opal/parser/default_config.rb
537
540
  - lib/opal/parser/patch.rb
538
541
  - lib/opal/parser/source_buffer.rb
539
- - lib/opal/parser/with_c_lexer.rb
540
542
  - lib/opal/parser/with_ruby_lexer.rb
541
543
  - lib/opal/path_reader.rb
542
544
  - lib/opal/paths.rb
@@ -552,6 +554,7 @@ files:
552
554
  - lib/opal/rewriters/dump_args.rb
553
555
  - lib/opal/rewriters/explicit_writer_return.rb
554
556
  - lib/opal/rewriters/for_rewriter.rb
557
+ - lib/opal/rewriters/forward_args.rb
555
558
  - lib/opal/rewriters/hashes/key_duplicates_rewriter.rb
556
559
  - lib/opal/rewriters/inline_args.rb
557
560
  - lib/opal/rewriters/js_reserved_words.rb
@@ -601,10 +604,12 @@ files:
601
604
  - opal/corelib/nil.rb
602
605
  - opal/corelib/number.rb
603
606
  - opal/corelib/numeric.rb
607
+ - opal/corelib/object_space.rb
604
608
  - opal/corelib/pack_unpack/format_string_parser.rb
605
609
  - opal/corelib/proc.rb
606
610
  - opal/corelib/process.rb
607
611
  - opal/corelib/random.rb
612
+ - opal/corelib/random/formatter.rb
608
613
  - opal/corelib/random/math_random.js.rb
609
614
  - opal/corelib/random/mersenne_twister.rb
610
615
  - opal/corelib/random/seedrandom.js.rb
@@ -649,6 +654,7 @@ files:
649
654
  - spec/filters/bugs/module.rb
650
655
  - spec/filters/bugs/nilclass.rb
651
656
  - spec/filters/bugs/numeric.rb
657
+ - spec/filters/bugs/objectspace.rb
652
658
  - spec/filters/bugs/openstruct.rb
653
659
  - spec/filters/bugs/pack_unpack.rb
654
660
  - spec/filters/bugs/pathname.rb
@@ -689,6 +695,7 @@ files:
689
695
  - spec/filters/unsupported/proc.rb
690
696
  - spec/filters/unsupported/random.rb
691
697
  - spec/filters/unsupported/range.rb
698
+ - spec/filters/unsupported/refinements.rb
692
699
  - spec/filters/unsupported/regexp.rb
693
700
  - spec/filters/unsupported/set.rb
694
701
  - spec/filters/unsupported/singleton.rb
@@ -732,9 +739,11 @@ files:
732
739
  - spec/lib/rewriters/dot_js_syntax_spec.rb
733
740
  - spec/lib/rewriters/explicit_writer_return_spec.rb
734
741
  - spec/lib/rewriters/for_rewriter_spec.rb
742
+ - spec/lib/rewriters/forward_args_spec.rb
735
743
  - spec/lib/rewriters/hashes/key_duplicates_rewriter_spec.rb
736
744
  - spec/lib/rewriters/js_reserved_words_spec.rb
737
745
  - spec/lib/rewriters/logical_operator_assignment_spec.rb
746
+ - spec/lib/rewriters/numblocks_spec.rb
738
747
  - spec/lib/rewriters/opal_engine_check_spec.rb
739
748
  - spec/lib/rewriters/returnable_logic_spec.rb
740
749
  - spec/lib/rewriters/rubyspec/filters_rewriter_spec.rb
@@ -800,7 +809,10 @@ files:
800
809
  - spec/opal/core/language/DATA/empty___END___spec.rb
801
810
  - spec/opal/core/language/DATA/multiple___END___spec.rb
802
811
  - spec/opal/core/language/arguments/mlhs_arg_spec.rb
812
+ - spec/opal/core/language/forward_args_spec.rb
813
+ - spec/opal/core/language/infinite_range_spec.rb
803
814
  - spec/opal/core/language/keyword_arguments_spec.rb
815
+ - spec/opal/core/language/memoization_spec.rb
804
816
  - spec/opal/core/language/numblocks_spec.rb
805
817
  - spec/opal/core/language/safe_navigator_spec.rb
806
818
  - spec/opal/core/language/while_spec.rb
@@ -808,6 +820,7 @@ files:
808
820
  - spec/opal/core/marshal/dump_spec.rb
809
821
  - spec/opal/core/marshal/load_spec.rb
810
822
  - spec/opal/core/module_spec.rb
823
+ - spec/opal/core/number/to_i_spec.rb
811
824
  - spec/opal/core/object_id_spec.rb
812
825
  - spec/opal/core/regexp/interpolation_spec.rb
813
826
  - spec/opal/core/regexp/match_spec.rb
@@ -825,7 +838,9 @@ files:
825
838
  - spec/opal/core/runtime_spec.rb
826
839
  - spec/opal/core/string/each_byte_spec.rb
827
840
  - spec/opal/core/string/gsub_spec.rb
841
+ - spec/opal/core/string/subclassing_spec.rb
828
842
  - spec/opal/core/string/to_sym_spec.rb
843
+ - spec/opal/core/string/unpack_spec.rb
829
844
  - spec/opal/core/string_spec.rb
830
845
  - spec/opal/core/struct/dup_spec.rb
831
846
  - spec/opal/core/time_spec.rb
@@ -1029,6 +1044,7 @@ files:
1029
1044
  - test/nodejs/test_io.rb
1030
1045
  - test/nodejs/test_opal_builder.rb
1031
1046
  - test/nodejs/test_pathname.rb
1047
+ - test/nodejs/test_string.rb
1032
1048
  - test/opal/cat.png
1033
1049
  - test/opal/http_server.rb
1034
1050
  - test/opal/test_base64.rb
@@ -1057,10 +1073,10 @@ licenses:
1057
1073
  metadata:
1058
1074
  homepage_uri: https://opalrb.com/
1059
1075
  bug_tracker_uri: https://github.com/opal/opal/issues
1060
- changelog_uri: https://github.com/opal/opal/blob/v1.1.1/CHANGELOG.md
1061
- readme_uri: https://github.com/opal/opal/blob/v1.1.1/README.md
1062
- api_documentation_uri: http://opalrb.com/docs/api/v1.1.1/index.html
1063
- guides_uri: http://opalrb.com/docs/guides/v1.1.1/index.html
1076
+ changelog_uri: https://github.com/opal/opal/blob/v1.2.0.beta1/CHANGELOG.md
1077
+ readme_uri: https://github.com/opal/opal/blob/v1.2.0.beta1/README.md
1078
+ api_documentation_uri: http://opalrb.com/docs/api/v1.2.0.beta1/index.html
1079
+ guides_uri: http://opalrb.com/docs/guides/v1.2.0.beta1/index.html
1064
1080
  chat_uri: https://gitter.im/opal/opal
1065
1081
  source_code_uri: https://github.com/opal/opal
1066
1082
  post_install_message:
@@ -1074,9 +1090,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
1074
1090
  version: '2.3'
1075
1091
  required_rubygems_version: !ruby/object:Gem::Requirement
1076
1092
  requirements:
1077
- - - ">="
1093
+ - - ">"
1078
1094
  - !ruby/object:Gem::Version
1079
- version: '0'
1095
+ version: 1.3.1
1080
1096
  requirements: []
1081
1097
  rubygems_version: 3.2.3
1082
1098
  signing_key:
@@ -1086,6 +1102,8 @@ test_files:
1086
1102
  - ".codeclimate.yml"
1087
1103
  - ".gitattributes"
1088
1104
  - ".github/FUNDING.yml"
1105
+ - ".github/ISSUE_TEMPLATE/bug-report.md"
1106
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
1089
1107
  - ".github/workflows/build.yml"
1090
1108
  - ".gitignore"
1091
1109
  - ".gitmodules"
@@ -1109,6 +1127,7 @@ test_files:
1109
1127
  - benchmark-ips/README.md
1110
1128
  - benchmark-ips/bm_array_pop_1.rb
1111
1129
  - benchmark-ips/bm_array_shift.rb
1130
+ - benchmark-ips/bm_array_unshift.rb
1112
1131
  - benchmark-ips/bm_block_vs_yield.rb
1113
1132
  - benchmark-ips/bm_case.rb
1114
1133
  - benchmark-ips/bm_constants_lookup.rb
@@ -1384,7 +1403,6 @@ test_files:
1384
1403
  - lib/opal/parser/default_config.rb
1385
1404
  - lib/opal/parser/patch.rb
1386
1405
  - lib/opal/parser/source_buffer.rb
1387
- - lib/opal/parser/with_c_lexer.rb
1388
1406
  - lib/opal/parser/with_ruby_lexer.rb
1389
1407
  - lib/opal/path_reader.rb
1390
1408
  - lib/opal/paths.rb
@@ -1400,6 +1418,7 @@ test_files:
1400
1418
  - lib/opal/rewriters/dump_args.rb
1401
1419
  - lib/opal/rewriters/explicit_writer_return.rb
1402
1420
  - lib/opal/rewriters/for_rewriter.rb
1421
+ - lib/opal/rewriters/forward_args.rb
1403
1422
  - lib/opal/rewriters/hashes/key_duplicates_rewriter.rb
1404
1423
  - lib/opal/rewriters/inline_args.rb
1405
1424
  - lib/opal/rewriters/js_reserved_words.rb
@@ -1449,10 +1468,12 @@ test_files:
1449
1468
  - opal/corelib/nil.rb
1450
1469
  - opal/corelib/number.rb
1451
1470
  - opal/corelib/numeric.rb
1471
+ - opal/corelib/object_space.rb
1452
1472
  - opal/corelib/pack_unpack/format_string_parser.rb
1453
1473
  - opal/corelib/proc.rb
1454
1474
  - opal/corelib/process.rb
1455
1475
  - opal/corelib/random.rb
1476
+ - opal/corelib/random/formatter.rb
1456
1477
  - opal/corelib/random/math_random.js.rb
1457
1478
  - opal/corelib/random/mersenne_twister.rb
1458
1479
  - opal/corelib/random/seedrandom.js.rb