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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +30 -41
  3. data/.rubocop.yml +3 -1
  4. data/Gemfile +1 -0
  5. data/UNRELEASED.md +13 -3
  6. data/docs/compiled_ruby.md +14 -14
  7. data/docs/releasing.md +4 -2
  8. data/exe/opal-build +1 -1
  9. data/lib/opal/compiler.rb +1 -1
  10. data/lib/opal/nodes/call_special.rb +1 -1
  11. data/lib/opal/nodes/literal.rb +1 -1
  12. data/lib/opal/nodes/rescue.rb +1 -1
  13. data/lib/opal/nodes/scope.rb +1 -1
  14. data/lib/opal/version.rb +1 -1
  15. data/opal/corelib/array.rb +1 -1
  16. data/opal/corelib/basic_object.rb +1 -1
  17. data/opal/corelib/constants.rb +3 -3
  18. data/opal/corelib/error.rb +16 -1
  19. data/opal/corelib/hash.rb +1 -1
  20. data/opal/corelib/io.rb +1 -1
  21. data/opal/corelib/module.rb +1 -1
  22. data/opal/corelib/object_space.rb +1 -1
  23. data/opal/corelib/runtime.js +1 -1
  24. data/opal/corelib/string/encoding.rb +6 -6
  25. data/opal.gemspec +2 -1
  26. data/spec/lib/compiler_spec.rb +16 -6
  27. data/spec/lib/fixtures/build_order/file5.rb.erb +1 -1
  28. data/spec/lib/rewriters/hashes/key_duplicates_rewriter_spec.rb +1 -1
  29. data/spec/lib/spec_helper.rb +11 -0
  30. data/spec/opal/core/array/include_spec.rb +12 -0
  31. data/spec/opal/core/runtime/rescue_spec.rb +5 -5
  32. data/spec/opal/stdlib/opal_raw_spec.rb +74 -0
  33. data/spec/support/source_map_helper.rb +1 -3
  34. data/stdlib/bigdecimal.rb +14 -14
  35. data/stdlib/date/date_time.rb +1 -1
  36. data/stdlib/deno/file.rb +1 -1
  37. data/stdlib/js.rb +7 -66
  38. data/stdlib/nodejs/file.rb +7 -7
  39. data/stdlib/opal/raw.rb +73 -0
  40. data/stdlib/optparse.rb +6 -6
  41. data/stdlib/shellwords.rb +1 -1
  42. data/tasks/testing.rake +13 -2
  43. metadata +27 -10
  44. data/spec/opal/stdlib/js_spec.rb +0 -74
@@ -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