property_visibility-delete.phpt 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. --TEST--
  2. Test V8::executeString() : Property visibility - delete
  3. --SKIPIF--
  4. <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
  5. --FILE--
  6. <?php
  7. class Foo {
  8. private $privBar = "privBar";
  9. protected $protBar = "protBar";
  10. public $pubBar = "pubBar";
  11. public function dump($a)
  12. {
  13. var_dump(@$this->$a);
  14. }
  15. }
  16. $js = new V8Js();
  17. $js->foo = new Foo();
  18. $script = <<<END
  19. var_dump(PHP.foo.privBar);
  20. delete PHP.foo.privBar;
  21. var_dump(PHP.foo.privBar);
  22. PHP.foo.privBar = 42;
  23. var_dump(PHP.foo.privBar);
  24. delete PHP.foo.privBar;
  25. var_dump(PHP.foo.privBar);
  26. var_dump(PHP.foo.protBar);
  27. delete PHP.foo.protBar;
  28. var_dump(PHP.foo.protBar);
  29. var_dump(PHP.foo.pubBar);
  30. delete PHP.foo.pubBar;
  31. var_dump(PHP.foo.pubBar);
  32. END;
  33. $js->foo->dump('privBar');
  34. $js->foo->dump('protBar');
  35. $js->foo->dump('pubBar');
  36. echo "--- JS ---\n";
  37. $js->executeString($script);
  38. echo "--- PHP ---\n";
  39. $js->foo->dump('privBar');
  40. $js->foo->dump('protBar');
  41. $js->foo->dump('pubBar');
  42. ?>
  43. ===EOF===
  44. --EXPECT--
  45. string(7) "privBar"
  46. string(7) "protBar"
  47. string(6) "pubBar"
  48. --- JS ---
  49. NULL
  50. NULL
  51. int(42)
  52. NULL
  53. NULL
  54. NULL
  55. string(6) "pubBar"
  56. NULL
  57. --- PHP ---
  58. string(7) "privBar"
  59. string(7) "protBar"
  60. NULL
  61. ===EOF===