assertEquals(264, ScriptRunner::executeJs(['a' => 8, 'b' => 100], $script)); } /* public function testScriptWithLongExecutionTime() { $script = <<assertEquals(264, ScriptRunner::executeJs(['a' => 8, 'b' => 100], $script)); } public function testNeverEndingScript() { $script = <<assertEquals('', ScriptRunner::executeJs(['a' => 8, 'b' => 100], $script)); } public function testScriptWithRequire() { $script = <<assertEquals('', ScriptRunner::executeJs(['a' => 8, 'b' => 100], $script)); } public function testAccessFileSystem1() { $script = <<assertEquals('', ScriptRunner::executeJs([], $script)); } public function testAccessFileSystem2() { $script = <<assertEquals('', ScriptRunner::executeJs([], $script)); } public function testAccessProcess() { $script = <<assertEquals('', ScriptRunner::executeJs([], $script)); } public function testScriptWithImport() { $script = <<assertEquals('', ScriptRunner::executeJs(['a' => 8, 'b' => 100], $script)); } public function testDoNotWaitForPromisesToResolve() { $script = << { resolve(val) }); let n = 0; while (n < 2) { k = k.then((val) => new Promise((resolve, reject) => { resolve(val + 1); })); n ++; } return k; } async function main() { await test(); } main(); val; JS; $res = ScriptRunner::executeJs(['val' => 100], $script); $this->assertEquals(100, $res); } public function testNeverEndingPromiseChain() { $script = << { resolve(val) }); while (1) { k = k.then((val) => new Promise((resolve, reject) => { resolve(val + 1); })); } return k; } async function main() { await test(); } main(); val; JS; $res = ScriptRunner::executeJs(['val' => 100], $script); $this->assertEquals('', $res); } */ }