We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
--TEST-- Test V8Js::setModuleNormaliser : Custom normalisation #005 --SKIPIF-- <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?> --FILE-- <?php $v8 = new V8Js(); $v8->setModuleNormaliser(function ($base, $moduleName) { var_dump($base, $moduleName); if ($base == '' && $moduleName == './tags') { return ['./tags', 'index.js']; } if ($base == './tags' && $moduleName == './if.js') { return ['./tags', 'if.js']; } return [$base, $moduleName]; }); $v8->setModuleLoader(function ($moduleName) { print("setModuleLoader called for ".$moduleName."\n"); switch ($moduleName) { case './app.js': return "require('./tags')"; case './tags/index.js': return "require('./if.js')"; } }); $v8->executeString("require('./app.js')"); echo "------------------------------------------------\n"; $v8 = new V8Js(); $v8->setModuleNormaliser(function ($base, $moduleName) { var_dump($base, $moduleName); if ($base == '' && $moduleName == './tags') { return ['./tags', 'index.js']; } if ($base == './tags' && $moduleName == './if.js') { return ['./tags', 'if.js']; } return [$base, $moduleName]; }); $v8->setModuleLoader(function ($moduleName) { print("setModuleLoader called for ".$moduleName."\n"); switch ($moduleName) { case './app.js': return "require('./tags')()"; // different case './tags/index.js': return "module.exports = function() {require('./if.js')}"; // different } }); $v8->executeString("require('./app.js')"); ?> ===EOF=== --EXPECT-- string(0) "" string(8) "./app.js" setModuleLoader called for ./app.js string(0) "" string(6) "./tags" setModuleLoader called for ./tags/index.js string(6) "./tags" string(7) "./if.js" setModuleLoader called for ./tags/if.js ------------------------------------------------ string(0) "" string(8) "./app.js" setModuleLoader called for ./app.js string(0) "" string(6) "./tags" setModuleLoader called for ./tags/index.js string(6) "./tags" string(7) "./if.js" setModuleLoader called for ./tags/if.js ===EOF===
Two tests should be the same. But the second result is:
string(0) "" string(7) "./if.js" setModuleLoader called for ./if.js
./app.js
require('./tags')()
./tags/index.js require inside functions
./tags/index.js
module.exports = function() { require('./if.js') }
The text was updated successfully, but these errors were encountered:
pass module_base directly via FunctionTemplate, closes phpv8#349
48a763d
cleanup: remove no longer needed modules_base from ctx, refs phpv8#349
313ad1e
Nice catch, that's there for ages :-)
Thanks for reporting.
Sorry, something went wrong.
No branches or pull requests
Two tests should be the same. But the second result is:
./app.js
./tags/index.js
require inside functionsThe text was updated successfully, but these errors were encountered: