rubinius-ast 2.2.3 → 2.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rubinius/ast/definitions.rb +1 -5
- data/lib/rubinius/ast/values.rb +30 -6
- data/lib/rubinius/ast/variables.rb +23 -4
- data/lib/rubinius/ast/version.rb +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a7851656bf49dfc51a484b281e4e26fc26ba8ac
|
4
|
+
data.tar.gz: 90237b04c583847cc647810514a8129726e05885
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5c6753402e9bf52244614b435e52c85d341c3f9d60bf5a85f0ce5e1691d07af71b556b1c36996ccd9a30f06d20f1a4e615d55495a4e1cf3b6eebebbf60d68992
|
7
|
+
data.tar.gz: faed2b96a7ebead3df82c4a92527dce3445d0dc95195ddf11e0403055c6e99e15e9ff6eb82e672a74b7c31522292732128a295fcd3afc2d8d806a3d259d01907
|
@@ -565,8 +565,6 @@ module CodeTools
|
|
565
565
|
arg.variable.get_bytecode(g)
|
566
566
|
g.send :equal?, 1, 0
|
567
567
|
g.gif done
|
568
|
-
# g.passed_arg arg.variable.slot
|
569
|
-
# g.git done
|
570
568
|
arg.bytecode(g)
|
571
569
|
g.pop
|
572
570
|
|
@@ -645,9 +643,7 @@ module CodeTools
|
|
645
643
|
@value.bytecode(g)
|
646
644
|
|
647
645
|
g.dup
|
648
|
-
g.
|
649
|
-
g.swap
|
650
|
-
g.send :equal?, 1, true
|
646
|
+
g.is_nil
|
651
647
|
g.gif check_hash
|
652
648
|
|
653
649
|
g.pop
|
data/lib/rubinius/ast/values.rb
CHANGED
@@ -14,9 +14,13 @@ module CodeTools
|
|
14
14
|
done = g.new_label
|
15
15
|
coerce = g.new_label
|
16
16
|
make_array = g.new_label
|
17
|
+
array_dup = g.new_label
|
18
|
+
dup_as_array = g.new_label
|
17
19
|
|
18
20
|
@value.bytecode(g)
|
19
|
-
|
21
|
+
|
22
|
+
instance_of_array(g, array_dup)
|
23
|
+
kind_of_array(g, dup_as_array)
|
20
24
|
|
21
25
|
g.dup
|
22
26
|
g.push_literal :to_a
|
@@ -28,16 +32,24 @@ module CodeTools
|
|
28
32
|
g.make_array 1
|
29
33
|
g.goto done
|
30
34
|
|
35
|
+
discard = g.new_label
|
36
|
+
|
37
|
+
dup_as_array.set!
|
38
|
+
g.dup
|
39
|
+
g.push_rubinius
|
40
|
+
g.find_const :Runtime
|
41
|
+
g.swap
|
42
|
+
g.send :dup_as_array, 1, true
|
43
|
+
g.goto discard
|
44
|
+
|
31
45
|
coerce.set!
|
32
46
|
g.dup
|
33
47
|
g.send :to_a, 0, true
|
34
48
|
|
35
|
-
discard = g.new_label
|
36
49
|
check_array = g.new_label
|
37
50
|
|
38
51
|
g.dup
|
39
|
-
g.
|
40
|
-
g.send :equal?, 1, true
|
52
|
+
g.is_nil
|
41
53
|
g.gif check_array
|
42
54
|
|
43
55
|
g.pop
|
@@ -54,6 +66,10 @@ module CodeTools
|
|
54
66
|
g.send :coerce_to_type_error, 4, true
|
55
67
|
g.goto done
|
56
68
|
|
69
|
+
array_dup.set!
|
70
|
+
g.send :dup, 0, true
|
71
|
+
g.goto done
|
72
|
+
|
57
73
|
discard.set!
|
58
74
|
g.swap
|
59
75
|
g.pop
|
@@ -61,6 +77,15 @@ module CodeTools
|
|
61
77
|
done.set!
|
62
78
|
end
|
63
79
|
|
80
|
+
def instance_of_array(g, label)
|
81
|
+
g.dup
|
82
|
+
g.push_cpath_top
|
83
|
+
g.find_const :Array
|
84
|
+
g.swap
|
85
|
+
g.instance_of
|
86
|
+
g.git label
|
87
|
+
end
|
88
|
+
|
64
89
|
def kind_of_array(g, label)
|
65
90
|
g.dup
|
66
91
|
g.push_cpath_top
|
@@ -123,8 +148,7 @@ module CodeTools
|
|
123
148
|
check_array = g.new_label
|
124
149
|
|
125
150
|
g.dup
|
126
|
-
g.
|
127
|
-
g.send :equal?, 1, true
|
151
|
+
g.is_nil
|
128
152
|
g.gif check_array
|
129
153
|
|
130
154
|
g.pop
|
@@ -713,8 +713,10 @@ module CodeTools
|
|
713
713
|
done = g.new_label
|
714
714
|
coerce = g.new_label
|
715
715
|
make_array = g.new_label
|
716
|
+
dup_as_array = g.new_label
|
716
717
|
|
717
|
-
|
718
|
+
instance_of_array(g, done)
|
719
|
+
kind_of_array(g, dup_as_array)
|
718
720
|
|
719
721
|
g.dup
|
720
722
|
g.push_literal :to_ary
|
@@ -726,16 +728,24 @@ module CodeTools
|
|
726
728
|
g.make_array 1
|
727
729
|
g.goto done
|
728
730
|
|
731
|
+
discard = g.new_label
|
732
|
+
|
733
|
+
dup_as_array.set!
|
734
|
+
g.dup
|
735
|
+
g.push_rubinius
|
736
|
+
g.find_const :Runtime
|
737
|
+
g.swap
|
738
|
+
g.send :dup_as_array, 1, true
|
739
|
+
g.goto discard
|
740
|
+
|
729
741
|
coerce.set!
|
730
742
|
g.dup
|
731
743
|
g.send :to_ary, 0, true
|
732
744
|
|
733
|
-
discard = g.new_label
|
734
745
|
check_array = g.new_label
|
735
746
|
|
736
747
|
g.dup
|
737
|
-
g.
|
738
|
-
g.send :equal?, 1, true
|
748
|
+
g.is_nil
|
739
749
|
g.gif check_array
|
740
750
|
|
741
751
|
g.pop
|
@@ -759,6 +769,15 @@ module CodeTools
|
|
759
769
|
done.set!
|
760
770
|
end
|
761
771
|
|
772
|
+
def instance_of_array(g, label)
|
773
|
+
g.dup
|
774
|
+
g.push_cpath_top
|
775
|
+
g.find_const :Array
|
776
|
+
g.swap
|
777
|
+
g.instance_of
|
778
|
+
g.git label
|
779
|
+
end
|
780
|
+
|
762
781
|
def kind_of_array(g, label)
|
763
782
|
g.dup
|
764
783
|
g.push_cpath_top
|
data/lib/rubinius/ast/version.rb
CHANGED
metadata
CHANGED
@@ -1,43 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubinius-ast
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Shirai
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
|
-
|
15
|
+
version_requirements: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.3'
|
20
20
|
type: :development
|
21
|
-
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
21
|
+
requirement: !ruby/object:Gem::Requirement
|
23
22
|
requirements:
|
24
23
|
- - "~>"
|
25
24
|
- !ruby/object:Gem::Version
|
26
25
|
version: '1.3'
|
26
|
+
prerelease: false
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
|
-
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '10.0'
|
34
34
|
type: :development
|
35
|
-
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
37
36
|
requirements:
|
38
37
|
- - "~>"
|
39
38
|
- !ruby/object:Gem::Version
|
40
39
|
version: '10.0'
|
40
|
+
prerelease: false
|
41
41
|
description: An Abstract Syntax Tree for Ruby.
|
42
42
|
email:
|
43
43
|
- brixen@gmail.com
|