Author: pmichaud
Date: Fri Jan 9 22:00:34 2009
New Revision: 35330
Modified:
trunk/languages/perl6/src/classes/Object.pir
Log:
[rakudo]: Update .PARROT method.
Modified: trunk/languages/perl6/src/classes/Object.pir
==============================================================================
--- trunk/languages/perl6/src/classes/Object.pir (original)
+++ trunk/languages/perl6/src/classes/Object.pir Fri Jan 9 22:00:34 2009
@@ -416,11 +416,19 @@
.local string result
obj = self
result = ''
+ deref_loop:
$I0 = isa obj, 'ObjectRef'
- unless $I0 goto have_obj
- result = 'ObjectRef->'
+ unless $I0 goto deref_done
+ $I0 = isa obj, 'Perl6Scalar'
+ if $I0 goto deref_scalar
+ result .= 'ObjectRef->'
+ goto deref_next
+ deref_scalar:
+ result .= 'Perl6Scalar->'
+ deref_next:
obj = deref obj
- have_obj:
+ goto deref_loop
+ deref_done:
$P0 = typeof obj
$S0 = $P0
result .= $S0