| 1477 | } |
| 1478 | |
| 1479 | void JavascriptProcessor::compileScript(const ResultFunction& rf /*= ResultFunction()*/) |
| 1480 | { |
| 1481 | inplaceValues.clearQuick(); |
| 1482 | |
| 1483 | clearCallableObjects(); |
| 1484 | |
| 1485 | auto f = [rf](Processor* p) |
| 1486 | { |
| 1487 | auto jp = dynamic_cast<JavascriptProcessor*>(p); |
| 1488 | |
| 1489 | auto result = jp->compileInternal(); |
| 1490 | |
| 1491 | auto postCompile = [result, rf](Dispatchable* obj) |
| 1492 | { |
| 1493 | |
| 1494 | |
| 1495 | auto jp = static_cast<JavascriptProcessor*>(obj); |
| 1496 | jp->stuffAfterCompilation(result); |
| 1497 | |
| 1498 | if(rf) |
| 1499 | rf(result); |
| 1500 | |
| 1501 | return Dispatchable::Status::OK; |
| 1502 | }; |
| 1503 | |
| 1504 | jp->mainController->getLockFreeDispatcher().callOnMessageThreadAfterSuspension(jp, postCompile); |
| 1505 | |
| 1506 | return SafeFunctionCall::OK; |
| 1507 | }; |
| 1508 | |
| 1509 | mainController->getJavascriptThreadPool().deactivateSleepUntilCompilation(); |
| 1510 | |
| 1511 | mainController->getKillStateHandler().killVoicesAndCall(dynamic_cast<Processor*>(this), f, MainController::KillStateHandler::TargetThread::ScriptingThread); |
| 1512 | } |
| 1513 | |
| 1514 | |
| 1515 | void JavascriptProcessor::setupApi() |
no test coverage detected