--TEST-- Test V8::executeString() : property_exists/isset/empty on wrapped JS objects --SKIPIF-- <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?> --FILE-- <?php $v8 = new V8Js(); $JS = <<< EOT (function(exports) { // begin module code exports.hello = function() { return 'hello'; }; exports.isnull = null; exports.isundefined = undefined; exports.isfalse = false; exports.iszero = 0; exports.isquotezero = '0'; exports.isemptyarray = []; exports.isemptystring = ''; exports.istrue = true; // end module code return exports; })({}) EOT; $exports = $v8->executeString($JS, 'basic.js'); echo "= isset() =\n"; echo "bogus: "; var_dump(isset( $exports->bogus )); echo "hello: "; var_dump(isset( $exports->hello )); echo "isnull: "; var_dump(isset( $exports->isnull )); echo "isundefined: "; var_dump(isset( $exports->isundefined )); echo "isfalse: "; var_dump(isset( $exports->isfalse )); echo "iszero: "; var_dump(isset( $exports->iszero )); echo "isquotezero: "; var_dump(isset( $exports->isquotezero )); echo "isemptyarray: "; var_dump(isset( $exports->isemptyarray )); echo "isemptystring: "; var_dump(isset( $exports->isemptystring )); echo "istrue: "; var_dump(isset( $exports->istrue )); echo "\n"; echo "= empty() =\n"; echo "bogus: "; var_dump(empty( $exports->bogus )); echo "hello: "; var_dump(empty( $exports->hello )); echo "isnull: "; var_dump(empty( $exports->isnull )); echo "isundefined: "; var_dump(empty( $exports->isundefined )); echo "isfalse: "; var_dump(empty( $exports->isfalse )); echo "iszero: "; var_dump(empty( $exports->iszero )); echo "isquotezero: "; var_dump(empty( $exports->isquotezero )); echo "isemptyarray: "; var_dump(empty( $exports->isemptyarray )); echo "isemptystring: "; var_dump(empty( $exports->isemptystring )); echo "istrue: "; var_dump(empty( $exports->istrue )); echo "\n"; echo "= property_exists() =\n"; echo "bogus: "; var_dump(property_exists( $exports, 'bogus' )); echo "hello: "; var_dump(property_exists( $exports, 'hello' )); echo "isnull: "; var_dump(property_exists( $exports, 'isnull' )); echo "isundefined: "; var_dump(property_exists( $exports, 'isundefined' )); echo "isfalse: "; var_dump(property_exists( $exports, 'isfalse' )); echo "iszero: "; var_dump(property_exists( $exports, 'iszero' )); echo "isquotezero: "; var_dump(property_exists( $exports, 'isquotezero' )); echo "isemptyarray: "; var_dump(property_exists( $exports, 'isemptyarray' )); echo "isemptystring: "; var_dump(property_exists( $exports, 'isemptystring' )); echo "istrue: "; var_dump(property_exists( $exports, 'istrue' )); echo "\n"; ?> ===EOF=== --EXPECT-- = isset() = bogus: bool(false) hello: bool(true) isnull: bool(false) isundefined: bool(false) isfalse: bool(true) iszero: bool(true) isquotezero: bool(true) isemptyarray: bool(true) isemptystring: bool(true) istrue: bool(true) = empty() = bogus: bool(true) hello: bool(false) isnull: bool(true) isundefined: bool(true) isfalse: bool(true) iszero: bool(true) isquotezero: bool(true) isemptyarray: bool(true) isemptystring: bool(true) istrue: bool(false) = property_exists() = bogus: bool(false) hello: bool(true) isnull: bool(true) isundefined: bool(true) isfalse: bool(true) iszero: bool(true) isquotezero: bool(true) isemptyarray: bool(true) isemptystring: bool(true) istrue: bool(true) ===EOF===