opal 1.8.2 → 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/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 +1 -1
- data/opal/corelib/string/encoding.rb +6 -6
- 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/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/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
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
|