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.

Reply via email to