Author: jonathan
Date: Wed Aug 20 08:58:07 2008
New Revision: 30382
Modified:
branches/lazyrakudo/languages/perl6/src/classes/Array.pir
Log:
[rakudo] Update unshift on Array. We can now compile and run some very simple
programs again and pass a few of the sanity tests.
Modified: branches/lazyrakudo/languages/perl6/src/classes/Array.pir
==============================================================================
--- branches/lazyrakudo/languages/perl6/src/classes/Array.pir (original)
+++ branches/lazyrakudo/languages/perl6/src/classes/Array.pir Wed Aug 20
08:58:07 2008
@@ -173,6 +173,11 @@
.return ($I0)
.end
+.sub '' :vtable('shift_float')
+ $N0 = self.'shift'()
+ .return ($N0)
+.end
+
.sub '' :vtable('delete_keyed_int')
.param int index
@@ -196,6 +201,41 @@
.end
+=item unshift(args :slurpy)
+
+Adds C<args> to the beginning of the Array.
+
+=cut
+
+.sub 'unshift' :method :multi(Perl6Array)
+ .param pmc args :slurpy
+ args.'!flatten'()
+ $P0 = getattribute self, "@!evaluated"
+ splice $P0, args, 0, 0
+ .return self.'elems'()
+.end
+
+.sub '' :vtable('unshift_pmc')
+ .param pmc arg
+ self.'unshift'(arg)
+.end
+
+.sub '' :vtable('unshift_string')
+ .param pmc arg
+ self.'unshift'(arg)
+.end
+
+.sub '' :vtable('unshift_integer')
+ .param pmc arg
+ self.'unshift'(arg)
+.end
+
+.sub '' :vtable('unshift_float')
+ .param pmc arg
+ self.'unshift'(arg)
+.end
+
+
############### Below here still to review after lazy changes. ###############
=item delete(indices :slurpy)
@@ -277,20 +317,6 @@
.end
-=item unshift(args :slurpy)
-
-Adds C<args> to the beginning of the Array.
-
-=cut
-
-.sub 'unshift' :method :multi(Perl6Array)
- .param pmc args :slurpy
- args.'!flatten'()
- splice self, args, 0, 0
- .return self.'elems'()
-.end
-
-
=item values()
Return the values of the Array as a List.