--TEST-- Test V8::setTimeLimit() : Time limit can be prolonged --SKIPIF-- <?php require_once(dirname(__FILE__) . '/skipif.inc'); if (getenv("SKIP_SLOW_TESTS")) { die("skip slow test"); } ?> --FILE-- <?php $JS = <<< EOT var text = "abcdefghijklmnopqrstuvwyxz0123456789"; /* Spend 75 * >10ms in the loop, i.e. at least 750ms; hence * it should be killed if prolonging doesn't work. */ for (var j = 0; j < 30; ++j) { PHP.prolongTimeLimit(); var start = (new Date()).getTime(); var encoded = encodeURI(text); while ((new Date()).getTime() - start < 10) { /* pass about 10ms in the loop, then prolong */ var encoded = encodeURI(text); } } EOT; $v8 = new V8Js(); $v8->setTimeLimit(300); $v8->prolongTimeLimit = function() use ($v8) { $v8->setTimeLimit(300); }; $v8->executeString($JS); ?> ===EOF=== --EXPECTF-- ===EOF===