commonjs_modules.phpt 750 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. --TEST--
  2. Test V8Js::setModuleLoader : CommonJS modules
  3. --SKIPIF--
  4. <?php
  5. if(!function_exists('json_encode')) {
  6. die('SKIP');
  7. }
  8. require_once(dirname(__FILE__) . '/skipif.inc');
  9. ?>
  10. --FILE--
  11. <?php
  12. $JS = <<< EOT
  13. require("path/to/module1");
  14. EOT;
  15. $v8 = new V8Js();
  16. $v8->setModuleLoader(function($module) {
  17. switch ($module) {
  18. case 'path/to/module1':
  19. return 'print(' . json_encode($module . PHP_EOL) . ');require("./module2");';
  20. case 'path/to/module2':
  21. return 'print(' . json_encode($module . PHP_EOL) . ');require("../../module3");';
  22. default:
  23. return 'print(' . json_encode($module . PHP_EOL) . ');';
  24. }
  25. });
  26. $v8->executeString($JS, 'module.js');
  27. ?>
  28. ===EOF===
  29. --EXPECT--
  30. path/to/module1
  31. path/to/module2
  32. module3
  33. ===EOF===