opal 1.8.2 → 1.8.3.rc1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|