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 {

Reply via email to