0
0
mirror of https://github.com/phpv8/v8js.git synced 2024-12-23 04:51:53 +00:00
phpv8/tests/extensions_error.phpt
Stefan Siegl b8726409f4 Throw V8JsException if v8 context cannot be created
We used to reset This to NULL, which never reallt was supposed to work
and PHP doc explicitly tell to not touch EX(This)
2015-10-03 00:01:12 +02:00

45 lines
1.3 KiB
PHP

--TEST--
Test V8::registerExtension() : Register extension with errors
--SKIPIF--
<?php
require_once(dirname(__FILE__) . '/skipif.inc');
ob_start(NULL, 0, PHP_OUTPUT_HANDLER_CLEANABLE | PHP_OUTPUT_HANDLER_REMOVABLE);
phpinfo(INFO_MODULES);
$minfo = ob_get_contents();
ob_end_clean();
if(preg_match("/V8 Engine Linked Version => (.*)/", $minfo, $matches)) {
$version = explode('.', $matches[1]);
if($version[0] < 3 || ($version[0] == 3 && $version[1] < 30)) {
// old v8 version, has shorter error message and hence doesn't
// fit our EXCEPTF below
echo "skip";
}
}
?>
--FILE--
<?php
$handlebarsJs = "var root = typeof global !== 'undefined' ? global : window, \$Handlebars = 'test';";
echo "-- registerExtension --\n";
V8Js::registerExtension('handlebars', $handlebarsJs, [], true);
echo "-- creating V8Js object --\n";
$v8 = new V8Js();
var_dump($v8);
?>
===EOF===
--EXPECTF--
-- registerExtension --
-- creating V8Js object --
Exception thrown during bootstrapping
Extension or internal compilation error%sin handlebars at line 1.
Error installing extension 'handlebars'.
Fatal error: Uncaught V8JsException: Failed to create V8 context. Check that registered extensions do not have errors. in %s%eextensions_error.php:7
Stack trace:
#0 %s%eextensions_error.php(7): V8Js->__construct()
#1 {main}
thrown in %s%eextensions_error.php on line 7