Author: bernhard
Date: Fri Jan 2 05:46:27 2009
New Revision: 34805
Modified:
trunk/languages/pipp/src/classes/Object.pir
trunk/languages/pipp/t/php/oo.t
Log:
[Pipp] Add vtable 'get_bool()' to PippObject.
Modified: trunk/languages/pipp/src/classes/Object.pir
==============================================================================
--- trunk/languages/pipp/src/classes/Object.pir (original)
+++ trunk/languages/pipp/src/classes/Object.pir Fri Jan 2 05:46:27 2009
@@ -20,9 +20,11 @@
.sub '' :anon :init :load
load_bytecode 'PCT.pbc'
+ # set up PippObject with P6 features
$P0 = get_root_global ['parrot'], 'P6metaclass'
- $P0.'new_class'('PippObject', 'name'=>'Object')
+ $P0.'new_class'('PippObject', 'name' => 'Object')
+ # cache the metaobject of 'PippObject'
.local pmc p6meta
p6meta = $P0.'HOW'()
set_hll_global ['PippObject'], '$!P6META', p6meta
@@ -34,6 +36,32 @@
=over 4
+=item defined()
+
+Return true if the object is defined.
+Default to being defined.
+
+=cut
+
+.namespace ['PippObject']
+.sub 'defined' :method
+ $P0 = new 'PhpBoolean'
+ $P0 = 1
+
+ .return ($P0)
+.end
+
+=item true()
+
+Boolean value of object -- defaults to C<.defined> (S02).
+
+=cut
+
+.namespace ['PippObject']
+.sub 'true' :method
+ .tailcall self.'defined'()
+.end
+
=item WHENCE()
Return the invocant's auto-vivification closure.
@@ -60,6 +88,12 @@
.namespace ['PippObject']
+.sub '' :vtable('get_bool') :method
+ $I0 = self.'true'()
+ .return ($I0)
+.end
+
+
# Local Variables:
# mode: pir
# fill-column: 100
Modified: trunk/languages/pipp/t/php/oo.t
==============================================================================
--- trunk/languages/pipp/t/php/oo.t (original)
+++ trunk/languages/pipp/t/php/oo.t Fri Jan 2 05:46:27 2009
@@ -239,7 +239,7 @@
Dummy statement, so that $foo is not returned.
OUT
-language_output_is( 'Pipp', <<'CODE', <<'OUT', 'class with constructor,
returning a PippObject', todo => 'PippObject has no get_bool' );
+language_output_is( 'Pipp', <<'CODE', <<'OUT', 'class with constructor,
returning a PippObject' );
<?php
class Foo {