execute_flags_args.phpt 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. --TEST--
  2. Test V8::executeString() : Forcing to arrays (argument passing)
  3. --SKIPIF--
  4. <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
  5. --FILE--
  6. <?php
  7. $js = <<<'EOT'
  8. String.prototype.test = function(){ return PHP.test(this, arguments); };
  9. "Foobar".test("foo", "bar");
  10. EOT;
  11. $v8 = new V8Js();
  12. $v8->test = function ($value) { var_dump(func_get_args()); };
  13. try {
  14. $v8->executeString($js, 'no_flags.js');
  15. echo "---\n";
  16. $v8->executeString($js, 'force_to_array.js', V8Js::FLAG_FORCE_ARRAY);
  17. } catch (V8JsScriptException $e) {
  18. var_dump($e);
  19. }
  20. ?>
  21. ===EOF===
  22. --EXPECTF--
  23. array(2) {
  24. [0]=>
  25. object(V8Object)#%d (6) {
  26. ["0"]=>
  27. string(1) "F"
  28. ["1"]=>
  29. string(1) "o"
  30. ["2"]=>
  31. string(1) "o"
  32. ["3"]=>
  33. string(1) "b"
  34. ["4"]=>
  35. string(1) "a"
  36. ["5"]=>
  37. string(1) "r"
  38. }
  39. [1]=>
  40. object(V8Object)#%d (2) {
  41. ["0"]=>
  42. string(3) "foo"
  43. ["1"]=>
  44. string(3) "bar"
  45. }
  46. }
  47. ---
  48. array(2) {
  49. [0]=>
  50. array(6) {
  51. [0]=>
  52. string(1) "F"
  53. [1]=>
  54. string(1) "o"
  55. [2]=>
  56. string(1) "o"
  57. [3]=>
  58. string(1) "b"
  59. [4]=>
  60. string(1) "a"
  61. [5]=>
  62. string(1) "r"
  63. }
  64. [1]=>
  65. array(2) {
  66. [0]=>
  67. string(3) "foo"
  68. [1]=>
  69. string(3) "bar"
  70. }
  71. }
  72. ===EOF===