opal 1.8.1 → 1.8.3.rc1
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/.github/workflows/build.yml +30 -41
- data/.rubocop.yml +3 -1
- data/CHANGELOG.md +14 -2
- data/Gemfile +1 -0
- data/UNRELEASED.md +13 -3
- data/docs/compiled_ruby.md +14 -14
- data/docs/releasing.md +4 -2
- data/exe/opal-build +1 -1
- data/lib/opal/compiler.rb +1 -1
- data/lib/opal/nodes/call_special.rb +1 -1
- data/lib/opal/nodes/literal.rb +1 -1
- data/lib/opal/nodes/rescue.rb +1 -1
- data/lib/opal/nodes/scope.rb +1 -1
- data/lib/opal/version.rb +1 -1
- data/opal/corelib/array.rb +1 -1
- data/opal/corelib/basic_object.rb +1 -1
- data/opal/corelib/constants.rb +3 -3
- data/opal/corelib/error.rb +16 -1
- data/opal/corelib/hash.rb +1 -1
- data/opal/corelib/io.rb +1 -1
- data/opal/corelib/module.rb +1 -1
- data/opal/corelib/object_space.rb +1 -1
- data/opal/corelib/runtime.js +2 -2
- data/opal/corelib/string/encoding.rb +6 -6
- data/opal/corelib/string.rb +3 -3
- data/opal.gemspec +2 -1
- data/spec/lib/compiler_spec.rb +16 -6
- data/spec/lib/fixtures/build_order/file5.rb.erb +1 -1
- data/spec/lib/rewriters/hashes/key_duplicates_rewriter_spec.rb +1 -1
- data/spec/lib/spec_helper.rb +11 -0
- data/spec/opal/core/array/include_spec.rb +12 -0
- data/spec/opal/core/runtime/rescue_spec.rb +5 -5
- data/spec/opal/core/string_spec.rb +35 -0
- data/spec/opal/stdlib/native/hash_spec.rb +2 -2
- data/spec/opal/stdlib/opal_raw_spec.rb +74 -0
- data/spec/support/source_map_helper.rb +1 -3
- data/stdlib/bigdecimal.rb +14 -14
- data/stdlib/date/date_time.rb +1 -1
- data/stdlib/deno/file.rb +1 -1
- data/stdlib/js.rb +7 -66
- data/stdlib/native.rb +3 -3
- data/stdlib/nodejs/file.rb +7 -7
- data/stdlib/opal/raw.rb +73 -0
- data/stdlib/optparse.rb +6 -6
- data/stdlib/shellwords.rb +1 -1
- data/tasks/testing.rake +13 -2
- metadata +27 -10
- data/spec/opal/stdlib/js_spec.rb +0 -74
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.8.
|
4
|
+
version: 1.8.3.rc1
|
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:
|
13
|
+
date: 2024-08-08 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: ast
|
@@ -26,6 +26,20 @@ dependencies:
|
|
26
26
|
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: 2.3.0
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: base64
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: 0.2.0
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 0.2.0
|
29
43
|
- !ruby/object:Gem::Dependency
|
30
44
|
name: parser
|
31
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -164,14 +178,14 @@ dependencies:
|
|
164
178
|
requirements:
|
165
179
|
- - "~>"
|
166
180
|
- !ruby/object:Gem::Version
|
167
|
-
version: '3.
|
181
|
+
version: '3.2'
|
168
182
|
type: :development
|
169
183
|
prerelease: false
|
170
184
|
version_requirements: !ruby/object:Gem::Requirement
|
171
185
|
requirements:
|
172
186
|
- - "~>"
|
173
187
|
- !ruby/object:Gem::Version
|
174
|
-
version: '3.
|
188
|
+
version: '3.2'
|
175
189
|
- !ruby/object:Gem::Dependency
|
176
190
|
name: rubocop
|
177
191
|
requirement: !ruby/object:Gem::Requirement
|
@@ -850,6 +864,7 @@ files:
|
|
850
864
|
- spec/opal/compiler/irb_spec.rb
|
851
865
|
- spec/opal/compiler/unicode_spec.rb
|
852
866
|
- spec/opal/core/array/dup_spec.rb
|
867
|
+
- spec/opal/core/array/include_spec.rb
|
853
868
|
- spec/opal/core/array/intersection_spec.rb
|
854
869
|
- spec/opal/core/array/minus_spec.rb
|
855
870
|
- spec/opal/core/array/union_spec.rb
|
@@ -963,7 +978,6 @@ files:
|
|
963
978
|
- spec/opal/stdlib/erb/inline_block.opalerb
|
964
979
|
- spec/opal/stdlib/erb/quoted.opalerb
|
965
980
|
- spec/opal/stdlib/erb/simple.opalerb
|
966
|
-
- spec/opal/stdlib/js_spec.rb
|
967
981
|
- spec/opal/stdlib/json/ext_spec.rb
|
968
982
|
- spec/opal/stdlib/json/parse_spec.rb
|
969
983
|
- spec/opal/stdlib/logger/logger_spec.rb
|
@@ -985,6 +999,7 @@ files:
|
|
985
999
|
- spec/opal/stdlib/native/native_writer_spec.rb
|
986
1000
|
- spec/opal/stdlib/native/new_spec.rb
|
987
1001
|
- spec/opal/stdlib/native/struct_spec.rb
|
1002
|
+
- spec/opal/stdlib/opal_raw_spec.rb
|
988
1003
|
- spec/opal/stdlib/pp_spec.rb
|
989
1004
|
- spec/opal/stdlib/promise/always_spec.rb
|
990
1005
|
- spec/opal/stdlib/promise/error_spec.rb
|
@@ -1136,6 +1151,7 @@ files:
|
|
1136
1151
|
- stdlib/opal-source-maps.rb
|
1137
1152
|
- stdlib/opal/miniracer.rb
|
1138
1153
|
- stdlib/opal/platform.rb
|
1154
|
+
- stdlib/opal/raw.rb
|
1139
1155
|
- stdlib/opal/repl_js.rb
|
1140
1156
|
- stdlib/open-uri.rb
|
1141
1157
|
- stdlib/optparse.rb
|
@@ -1230,10 +1246,10 @@ licenses:
|
|
1230
1246
|
metadata:
|
1231
1247
|
homepage_uri: https://opalrb.com/
|
1232
1248
|
bug_tracker_uri: https://github.com/opal/opal/issues
|
1233
|
-
changelog_uri: https://github.com/opal/opal/blob/v1.8.
|
1234
|
-
readme_uri: https://github.com/opal/opal/blob/v1.8.
|
1235
|
-
api_documentation_uri: http://opalrb.com/docs/api/v1.8.
|
1236
|
-
guides_uri: http://opalrb.com/docs/guides/v1.8.
|
1249
|
+
changelog_uri: https://github.com/opal/opal/blob/v1.8.3.rc1/CHANGELOG.md
|
1250
|
+
readme_uri: https://github.com/opal/opal/blob/v1.8.3.rc1/README.md
|
1251
|
+
api_documentation_uri: http://opalrb.com/docs/api/v1.8.3.rc1/index.html
|
1252
|
+
guides_uri: http://opalrb.com/docs/guides/v1.8.3.rc1/index.html
|
1237
1253
|
chat_uri: https://gitter.im/opal/opal
|
1238
1254
|
source_code_uri: https://github.com/opal/opal
|
1239
1255
|
post_install_message:
|
@@ -1251,7 +1267,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1251
1267
|
- !ruby/object:Gem::Version
|
1252
1268
|
version: '0'
|
1253
1269
|
requirements: []
|
1254
|
-
rubygems_version: 3.
|
1270
|
+
rubygems_version: 3.5.11
|
1255
1271
|
signing_key:
|
1256
1272
|
specification_version: 4
|
1257
1273
|
summary: Ruby runtime and core library for JavaScript
|
@@ -1832,6 +1848,7 @@ test_files:
|
|
1832
1848
|
- stdlib/opal-source-maps.rb
|
1833
1849
|
- stdlib/opal/miniracer.rb
|
1834
1850
|
- stdlib/opal/platform.rb
|
1851
|
+
- stdlib/opal/raw.rb
|
1835
1852
|
- stdlib/opal/repl_js.rb
|
1836
1853
|
- stdlib/open-uri.rb
|
1837
1854
|
- stdlib/optparse.rb
|
data/spec/opal/stdlib/js_spec.rb
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
# backtick_javascript: true
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
require 'js'
|
5
|
-
|
6
|
-
describe 'javascript operations using JS module' do
|
7
|
-
it 'JS.typeof uses typeof to return underlying javascript type' do
|
8
|
-
[1, `null`, `undefined`, Object.new, [], ""].each do |v|
|
9
|
-
JS.typeof(v).should == `typeof #{v}`
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'JS.new uses new to create new instance' do
|
14
|
-
f = `function(){}`
|
15
|
-
f.JS[:prototype].JS[:color] = 'black'
|
16
|
-
JS.new(f).JS[:color].should == 'black'
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'JS.new handles blocks' do
|
20
|
-
f = `function(a){this.a = a}`
|
21
|
-
JS.new(f){1}.JS.a.should == 1
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'JS.instanceof uses instanceof to check if value is an instance of a function' do
|
25
|
-
f = `function(){}`
|
26
|
-
JS.instanceof(JS.new(f), f).should == true
|
27
|
-
JS.instanceof(JS.new(f), `function(){}`).should == false
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'JS.delete uses delete to remove properties from objects' do
|
31
|
-
f = `{a:1}`
|
32
|
-
f.JS[:a].should == 1
|
33
|
-
JS.delete(f, :a)
|
34
|
-
`#{f.JS[:a]} === undefined`.should == true
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'JS.in uses in to check for properties in objects' do
|
38
|
-
f = `{a:1}`
|
39
|
-
JS.in(:a, f).should == true
|
40
|
-
JS.in(:b, f).should == false
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'JS.void returns undefined' do
|
44
|
-
f = 1
|
45
|
-
`#{JS.void(f += 1)} === undefined`.should == true
|
46
|
-
f.should == 2
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'JS.call calls global javascript methods' do
|
50
|
-
JS.call(:parseFloat, '1.0').should == 1
|
51
|
-
JS.call(:parseInt, '1').should == 1
|
52
|
-
JS.call(:eval, "({a:1})").JS[:a].should == 1
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'JS.method_missing calls global javascript methods' do
|
56
|
-
JS.parseFloat('1.0').should == 1
|
57
|
-
JS.parseInt('1').should == 1
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'JS.call calls global javascript methods with blocks' do
|
61
|
-
begin
|
62
|
-
JS.global.JS[:_test_global_function] = lambda{|pr| pr.call + 1}
|
63
|
-
JS._test_global_function{1}.should == 2
|
64
|
-
ensure
|
65
|
-
JS.delete(JS.global, :_test_global_function)
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
it 'JS.<METHOD> supports complex method calls' do
|
70
|
-
obj = `{ foo: function(){return "foo"} }`
|
71
|
-
args = [1,2,3]
|
72
|
-
obj.JS.foo(*args).should == :foo
|
73
|
-
end
|
74
|
-
end
|