diff --git a/modules/javascript.cpp b/modules/javascript.cpp index 3ba35403..dd910a26 100644 --- a/modules/javascript.cpp +++ b/modules/javascript.cpp @@ -324,6 +324,7 @@ public: params().addParam(new ExpFunction("yield")); params().addParam(new ExpFunction("idle")); params().addParam(new ExpFunction("restart")); + params().addParam(new ExpFunction("init")); params().addParam(new ExpFunction("dump_r")); params().addParam(new ExpFunction("print_r")); params().addParam(new ExpFunction("dump_t")); @@ -1534,6 +1535,21 @@ bool JsEngine::runNative(ObjList& stack, const ExpOperation& oper, GenObject* co Debug(&__plugin,DebugNote,"Engine restart is disabled by allow_abort configuration"); ExpEvaluator::pushOne(stack,new ExpOperation(ok)); } + else if (oper.name() == YSTRING("init")) { + bool ok = true; + if (!oper.number()) + Engine::init(); + else if (oper.number() == 1) { + ExpOperation* module = popValue(stack,context); + if (!module) + return false; + ok = Engine::init(*module); + TelEngine::destruct(module); + } + else + return false; + ExpEvaluator::pushOne(stack,new ExpOperation(ok)); + } else if (oper.name() == YSTRING("uptime")) { SysUsage::Type typ = SysUsage::WallTime; bool msec = false;