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.
- checksums.yaml +4 -4
- data/.codeclimate.yml +3 -2
- data/.github/ISSUE_TEMPLATE/bug-report.md +47 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- data/.github/workflows/build.yml +11 -5
- data/.gitignore +1 -0
- data/.jshintrc +1 -1
- data/Gemfile +0 -4
- data/HACKING.md +1 -1
- data/README.md +19 -15
- data/UNRELEASED.md +41 -0
- data/benchmark-ips/bm_array_unshift.rb +7 -0
- data/bin/opal-mspec +2 -0
- data/docs/compiler.md +1 -1
- data/examples/rack/Gemfile +0 -1
- data/examples/rack/Gemfile.lock +0 -4
- data/lib/opal/cli.rb +1 -0
- data/lib/opal/cli_options.rb +4 -0
- data/lib/opal/cli_runners/nodejs.rb +4 -0
- data/lib/opal/cli_runners/source-map-support-browser.js +3 -1
- data/lib/opal/cli_runners/source-map-support-node.js +3 -1
- data/lib/opal/cli_runners/source-map-support.js +3 -1
- data/lib/opal/compiler.rb +2 -2
- data/lib/opal/nodes/args/arity_check.rb +1 -0
- data/lib/opal/nodes/args/parameters.rb +6 -0
- data/lib/opal/nodes/class.rb +1 -13
- data/lib/opal/nodes/literal.rb +14 -7
- data/lib/opal/nodes/module.rb +13 -9
- data/lib/opal/nodes/variables.rb +13 -4
- data/lib/opal/nodes/while.rb +54 -17
- data/lib/opal/parser.rb +1 -5
- data/lib/opal/parser/patch.rb +34 -0
- data/lib/opal/repl.rb +7 -0
- data/lib/opal/rewriter.rb +2 -0
- data/lib/opal/rewriters/arguments.rb +4 -1
- data/lib/opal/rewriters/forward_args.rb +54 -0
- data/lib/opal/rewriters/logical_operator_assignment.rb +5 -2
- data/lib/opal/rewriters/opal_engine_check.rb +5 -7
- data/lib/opal/version.rb +1 -1
- data/opal/corelib/array.rb +42 -20
- data/opal/corelib/array/pack.rb +6 -1
- data/opal/corelib/complex.rb +2 -0
- data/opal/corelib/constants.rb +3 -3
- data/opal/corelib/hash.rb +36 -38
- data/opal/corelib/module.rb +2 -7
- data/opal/corelib/number.rb +2 -180
- data/opal/corelib/numeric.rb +156 -0
- data/opal/corelib/object_space.rb +102 -0
- data/opal/corelib/random.rb +31 -66
- data/opal/corelib/random/formatter.rb +122 -0
- data/opal/corelib/range.rb +50 -19
- data/opal/corelib/runtime.js +82 -21
- data/opal/corelib/string.rb +86 -52
- data/opal/corelib/string/encoding.rb +140 -25
- data/opal/corelib/string/unpack.rb +26 -40
- data/opal/opal.rb +1 -0
- data/opal/opal/full.rb +1 -0
- data/spec/filters/bugs/array.rb +0 -22
- data/spec/filters/bugs/basicobject.rb +3 -0
- data/spec/filters/bugs/encoding.rb +0 -2
- data/spec/filters/bugs/exception.rb +1 -0
- data/spec/filters/bugs/float.rb +0 -2
- data/spec/filters/bugs/hash.rb +2 -7
- data/spec/filters/bugs/integer.rb +0 -2
- data/spec/filters/bugs/kernel.rb +16 -3
- data/spec/filters/bugs/language.rb +6 -14
- data/spec/filters/bugs/marshal.rb +1 -3
- data/spec/filters/bugs/module.rb +16 -1
- data/spec/filters/bugs/numeric.rb +4 -12
- data/spec/filters/bugs/objectspace.rb +67 -0
- data/spec/filters/bugs/pack_unpack.rb +0 -9
- data/spec/filters/bugs/pathname.rb +1 -0
- data/spec/filters/bugs/proc.rb +8 -0
- data/spec/filters/bugs/random.rb +3 -6
- data/spec/filters/bugs/range.rb +83 -113
- data/spec/filters/bugs/set.rb +2 -0
- data/spec/filters/bugs/string.rb +31 -70
- data/spec/filters/bugs/struct.rb +2 -0
- data/spec/filters/bugs/time.rb +8 -2
- data/spec/filters/unsupported/float.rb +3 -0
- data/spec/filters/unsupported/freeze.rb +1 -0
- data/spec/filters/unsupported/integer.rb +3 -0
- data/spec/filters/unsupported/refinements.rb +5 -0
- data/spec/filters/unsupported/string.rb +100 -95
- data/spec/filters/unsupported/time.rb +4 -0
- data/spec/lib/compiler_spec.rb +16 -0
- data/spec/lib/rewriters/forward_args_spec.rb +61 -0
- data/spec/lib/rewriters/logical_operator_assignment_spec.rb +1 -1
- data/spec/lib/rewriters/numblocks_spec.rb +44 -0
- data/spec/lib/rewriters/opal_engine_check_spec.rb +49 -4
- data/spec/opal/core/language/forward_args_spec.rb +53 -0
- data/spec/opal/core/language/infinite_range_spec.rb +13 -0
- data/spec/opal/core/language/memoization_spec.rb +16 -0
- data/spec/opal/core/module_spec.rb +38 -2
- data/spec/opal/core/number/to_i_spec.rb +28 -0
- data/spec/opal/core/runtime/bridged_classes_spec.rb +16 -0
- data/spec/opal/core/runtime/constants_spec.rb +20 -1
- data/spec/opal/core/string/subclassing_spec.rb +16 -0
- data/spec/opal/core/string/unpack_spec.rb +22 -0
- data/spec/opal/core/string_spec.rb +4 -4
- data/spec/ruby_specs +4 -1
- data/stdlib/json.rb +3 -1
- data/stdlib/securerandom.rb +55 -35
- data/tasks/testing.rake +6 -3
- data/test/nodejs/test_string.rb +25 -0
- data/vendored-minitest/minitest/assertions.rb +2 -0
- metadata +31 -10
- 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::
|
|
23
|
-
Encoding.find('ascii-8bit').should == Encoding::
|
|
24
|
-
Encoding.find('BINARY').should == Encoding::
|
|
25
|
-
Encoding.find('binary').should == Encoding::
|
|
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
|
|
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
data/stdlib/securerandom.rb
CHANGED
|
@@ -1,44 +1,64 @@
|
|
|
1
1
|
module SecureRandom
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
|
|
44
|
+
return storage;
|
|
29
45
|
}
|
|
30
|
-
return string;
|
|
31
46
|
}
|
|
32
|
-
|
|
47
|
+
}
|
|
33
48
|
|
|
34
|
-
def self.
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
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.
|
|
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-
|
|
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.
|
|
1061
|
-
readme_uri: https://github.com/opal/opal/blob/v1.
|
|
1062
|
-
api_documentation_uri: http://opalrb.com/docs/api/v1.
|
|
1063
|
-
guides_uri: http://opalrb.com/docs/guides/v1.
|
|
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:
|
|
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
|