opal 0.10.0.beta1 → 0.10.0.beta2
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/CHANGELOG.md +1 -0
- data/lib/opal/nodes/args/normarg.rb +7 -3
- data/lib/opal/nodes/def.rb +2 -0
- data/lib/opal/version.rb +1 -1
- data/opal/corelib/constants.rb +1 -1
- data/opal/corelib/unsupported.rb +8 -0
- data/spec/filters/bugs/language.rb +18 -0
- data/spec/filters/unsupported/freeze.rb +2 -0
- data/spec/filters/unsupported/privacy.rb +8 -0
- data/spec/opal/core/language/arguments/mlhs_arg_spec.rb +19 -0
- data/spec/ruby_specs +0 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b0d30f54134e49ebcd91c2ece0dd0cf54a6d72ae
|
|
4
|
+
data.tar.gz: 57d3c8e202237d2e452523b1d772d8ddfe3baa24
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0417410d72d8b82f366042085243ccd06d6d4394e46dbe507a3834e9df68d2ec5c76585b660466888ea6d3e8618e96f551e1e3482c3e66b0f270f5a9c4051482
|
|
7
|
+
data.tar.gz: da1d154ccf0f0ae319bed44b962e2ef6a588af39d22ede501cd7af7c7d8f095c9223bee1ecf0bafdf6b8500f605589d7c2b814daaf841b9caf5707ea6d0602a4
|
data/CHANGELOG.md
CHANGED
|
@@ -105,6 +105,7 @@ Whitespace conventions:
|
|
|
105
105
|
- Fixed parsing of `%{}` lists when list item contains same brackets.
|
|
106
106
|
- Fixed an issue with `"-"` inside the second arg of `String#tr`
|
|
107
107
|
- Fixed Base64 and enabled specs
|
|
108
|
+
- Fixed method definition in method body.
|
|
108
109
|
|
|
109
110
|
|
|
110
111
|
### Removed
|
|
@@ -14,11 +14,15 @@ module Opal
|
|
|
14
14
|
arg_name = @sexp[1].to_sym
|
|
15
15
|
var_name = variable(arg_name)
|
|
16
16
|
|
|
17
|
-
default_value = scope.in_mlhs? ? "|| nil" : ""
|
|
18
|
-
|
|
19
17
|
if @sexp.meta[:post]
|
|
20
18
|
add_temp var_name
|
|
21
|
-
line "#{var_name} = #{scope.working_arguments}.splice(0,1)[0]
|
|
19
|
+
line "#{var_name} = #{scope.working_arguments}.splice(0,1)[0];"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
if scope.in_mlhs?
|
|
23
|
+
line "if (#{var_name} == null) {"
|
|
24
|
+
line " #{var_name} = nil;"
|
|
25
|
+
line "}"
|
|
22
26
|
end
|
|
23
27
|
end
|
|
24
28
|
end
|
data/lib/opal/nodes/def.rb
CHANGED
|
@@ -120,6 +120,8 @@ module Opal
|
|
|
120
120
|
elsif scope.top?
|
|
121
121
|
unshift "Opal.defn(Opal.Object, '$#{mid}', "
|
|
122
122
|
push ')'
|
|
123
|
+
elsif scope.def?
|
|
124
|
+
wrap "Opal.def(self, '$#{mid}', ", ')'
|
|
123
125
|
else
|
|
124
126
|
raise "Unsupported use of `def`; please file a bug at https://github.com/opal/opal reporting this message."
|
|
125
127
|
end
|
data/lib/opal/version.rb
CHANGED
data/opal/corelib/constants.rb
CHANGED
data/opal/corelib/unsupported.rb
CHANGED
|
@@ -288,4 +288,22 @@ opal_filter "language" do
|
|
|
288
288
|
fails "A Proc taking |(a, b)| arguments calls #to_ary to convert a single passed object to an Array"
|
|
289
289
|
fails "A Proc taking |(a, b)| arguments calls #to_ary to convert a single passed object to an Array"
|
|
290
290
|
fails "A Proc taking |(a, b)| arguments raises a TypeError if #to_ary does not return an Array"
|
|
291
|
+
fails "A singleton method definition can be declared for a local variable"
|
|
292
|
+
fails "A singleton method definition can be declared for an instance variable"
|
|
293
|
+
fails "A singleton method definition can be declared for a global variable"
|
|
294
|
+
fails "A singleton method definition can be declared for a class variable"
|
|
295
|
+
fails "A singleton method defined with extreme default arguments may use a method definition as a default"
|
|
296
|
+
fails "A singleton method defined with extreme default arguments may use an fcall as a default"
|
|
297
|
+
fails "A singleton method defined with extreme default arguments evaluates the defaults in the singleton scope"
|
|
298
|
+
fails "A singleton method defined with extreme default arguments may use preceding arguments as defaults"
|
|
299
|
+
fails "A singleton method defined with extreme default arguments may use a lambda as a default"
|
|
300
|
+
fails "A nested method definition creates an instance method when evaluated in an instance method"
|
|
301
|
+
fails "A nested method definition creates a class method when evaluated in a class method"
|
|
302
|
+
fails "A method defined with extreme default arguments may use an fcall as a default" # fails on phantomjs
|
|
303
|
+
fails "A method definition in an eval creates an instance method"
|
|
304
|
+
fails "A method definition in an eval creates a class method"
|
|
305
|
+
fails "A method definition in an eval creates a singleton method"
|
|
306
|
+
fails "An instance method with a default argument shadows an existing method with the same name as the local"
|
|
307
|
+
fails "A nested method definition creates a method in the surrounding context when evaluated in a def expr.method"
|
|
308
|
+
fails "The def keyword within a closure looks outside the closure for the visibility"
|
|
291
309
|
end
|
|
@@ -45,4 +45,6 @@ opal_filter "freezing" do
|
|
|
45
45
|
fails "String#clone copies frozen state"
|
|
46
46
|
fails "String#initialize with no arguments does not raise an exception when frozen"
|
|
47
47
|
fails "StringScanner#initialize returns an instance of StringScanner"
|
|
48
|
+
fails "A singleton method definition raises RuntimeError if frozen"
|
|
49
|
+
fails "A method definition inside a metaclass scope raises RuntimeError if frozen"
|
|
48
50
|
end
|
|
@@ -134,4 +134,12 @@ opal_filter "private" do
|
|
|
134
134
|
fails "OpenStruct#initialize is private"
|
|
135
135
|
fails "OpenStruct#new_ostruct_member is protected"
|
|
136
136
|
fails "OpenStruct#table is protected"
|
|
137
|
+
fails "Defining a method at the top-level defines it on Object with private visibility by default"
|
|
138
|
+
fails "Defining an 'initialize' method sets the method's visibility to private"
|
|
139
|
+
fails "Defining an 'initialize_copy' method sets the method's visibility to private"
|
|
140
|
+
fails "Defining an 'initialize_dup' method sets the method's visibility to private"
|
|
141
|
+
fails "Defining an 'initialize_clone' method sets the method's visibility to private"
|
|
142
|
+
fails "Defining a 'respond_to_missing?' method sets the method's visibility to private"
|
|
143
|
+
fails "Redefining a singleton method does not inherit a previously set visibility"
|
|
144
|
+
fails "Redefining a singleton method does not inherit a previously set visibility"
|
|
137
145
|
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# regression test
|
|
2
|
+
describe 'mlhs argument' do
|
|
3
|
+
context 'when pased value is falsey in JS' do
|
|
4
|
+
it 'still returns it' do
|
|
5
|
+
p = ->((a)){ a }
|
|
6
|
+
p.call(false).should == false
|
|
7
|
+
p.call("").should == ""
|
|
8
|
+
p.call(0).should == 0
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
context 'when passed value == null' do
|
|
13
|
+
it 'replaces it with nil' do
|
|
14
|
+
p = ->((a)){ a }
|
|
15
|
+
p.call([`undefined`]).should == nil
|
|
16
|
+
p.call([`null`]).should == nil
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
data/spec/ruby_specs
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: opal
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.10.0.
|
|
4
|
+
version: 0.10.0.beta2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Adam Beynon
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-03-
|
|
11
|
+
date: 2016-03-31 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: sourcemap
|
|
@@ -691,6 +691,7 @@ files:
|
|
|
691
691
|
- spec/opal/core/kernel/respond_to_spec.rb
|
|
692
692
|
- spec/opal/core/kernel/send_spec.rb
|
|
693
693
|
- spec/opal/core/kernel/sprintf_spec.rb
|
|
694
|
+
- spec/opal/core/language/arguments/mlhs_arg_spec.rb
|
|
694
695
|
- spec/opal/core/language/block_spec.rb
|
|
695
696
|
- spec/opal/core/language/class_spec.rb
|
|
696
697
|
- spec/opal/core/language/equal_spec.rb
|
|
@@ -1354,6 +1355,7 @@ test_files:
|
|
|
1354
1355
|
- spec/opal/core/kernel/respond_to_spec.rb
|
|
1355
1356
|
- spec/opal/core/kernel/send_spec.rb
|
|
1356
1357
|
- spec/opal/core/kernel/sprintf_spec.rb
|
|
1358
|
+
- spec/opal/core/language/arguments/mlhs_arg_spec.rb
|
|
1357
1359
|
- spec/opal/core/language/block_spec.rb
|
|
1358
1360
|
- spec/opal/core/language/class_spec.rb
|
|
1359
1361
|
- spec/opal/core/language/equal_spec.rb
|