commonjs_node_compat_basic.phpt 798 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. --TEST--
  2. Test V8Js::setModuleLoader : exports/module.exports behaviour
  3. --SKIPIF--
  4. <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
  5. --FILE--
  6. <?php
  7. $v8 = new V8Js();
  8. $v8->setModuleLoader(function ($moduleName) {
  9. return <<<'EOJS'
  10. var_dump(typeof exports);
  11. var_dump(typeof module.exports);
  12. // for compatibility both should be linked
  13. var_dump(exports === module.exports);
  14. exports = { number: 23 };
  15. module.exports = { number: 42 };
  16. EOJS
  17. ;
  18. });
  19. $v8->executeString(<<<'EOJS'
  20. var result = require('foo');
  21. // expect module.exports value to be picked up
  22. var_dump(typeof result);
  23. var_dump(result.number);
  24. EOJS
  25. );
  26. ?>
  27. ===EOF===
  28. --EXPECT--
  29. string(6) "object"
  30. string(6) "object"
  31. bool(true)
  32. string(6) "object"
  33. int(42)
  34. ===EOF===