Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // example usage...
- procedure TDataModuleMain.DataModuleCreate(Sender: TObject);
- begin
- try
- FRuntime := TChakraCoreRuntime.Create([ccroEnableExperimentalFeatures, ccroDispatchSetExceptionsToDebugger]);
- FContext := TChakraCoreContext.Create(FRuntime);
- FContext.Activate;
- ChakraCoreCheck(JsCreateObject(FConsole));
- ChakraCoreCheck(JsAddRef(FConsole, nil));
- SetCallback(FConsole, 'assert', ConsoleAssertFunc, Self);
- SetCallback(FConsole, 'log', ConsoleLogFunc, Self);
- SetCallback(FConsole, 'info', ConsoleInfoFunc, Self);
- SetCallback(FConsole, 'warn', ConsoleWarnFunc, Self);
- SetCallback(FConsole, 'error', ConsoleErrorFunc, Self);
- SetCallback(FConsole, 'exception', ConsoleErrorFunc, Self);
- SetProperty(FContext.Global, 'console', FConsole);
- except
- FConsole := nil;
- FreeAndNil(FContext);
- FreeAndNil(FRuntime);
- raise;
- end;
- end;
- procedure TDataModuleMain.DataModuleDestroy(Sender: TObject);
- begin
- if Assigned(FConsole) then
- ChakraCoreCheck(JsRelease(FConsole, nil));
- FConsole := nil;
- FreeAndNil(FContext);
- FreeAndNil(FRuntime);
- end;
- procedure TDataModuleMain.Execute(const ScriptFileNames: array of UnicodeString);
- var
- I, Cookie: Integer;
- begin
- Cookie := 0;
- for I := Low(ScriptFileNames) to High(ScriptFileNames) do
- begin
- RunScript(LoadFile(ScriptFilenames[I]), UnicodeString(ExtractFileName(ScriptFileNames[I])), Cookie);
- Inc(Cookie);
- end;
- end;
Add Comment
Please, Sign In to add comment