object frmSM45Demo: TfrmSM45Demo Left = 362 Height = 516 Top = 176 Width = 771 Caption = 'SyNode (Synopse SpiderMonkey with NodeJS modules) demo' ClientHeight = 516 ClientWidth = 771 Color = clBtnFace Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' OnCreate = FormCreate OnDestroy = FormDestroy LCLVersion = '2.0.0.2' object mSource: TMemo Left = 16 Height = 414 Top = 24 Width = 442 Lines.Strings = ( '/*' '1) We define a property global.mainForm = binding to this Deplhi form' '2) JavaScript debugger is listeninng on the localhost:6000' ' - to debug run Firefox with -chrome flag as below' ' "C:\Program Files\Firefox Developer Edition\firefox.exe" -chrome chrome://devtools/content/framework/connect/connect.xhtml' 'OR' ' - enable a remote debugger: https://developer.mozilla.org/ru/docs/Tools/Remote_Debugging#On_the_desktop_2' ' - go to chrome://devtools/content/framework/connect/connect.xhtml' 'FF58 for windows has known bug with remote debugger - use either FF57 or FF59 (developer edition)' '*/' '' 'mainForm.caption = new Date().toLocaleString();' 'mainForm.top = 10;' '' 'const fs = require(''fs'');' 'const path = require(''path'');' 'let content = fs.readFileSync(path.join(process.cwd(), ''ExtendDebuggerConsole.js''), ''utf8'');' 'mainForm.toLog(content);' '/*' ' * You can evaluate script below if you compiled math-module sample' ' * to SyNode\Samples\01 - Dll Modules\math-module\build\mathModule.dll' ' */' '' '/*' 'const mathModule = require(''''../../Samples/01 - Dll Modules/math-module'''');' 'mainForm.toLog(''''PI='''' + mathModule.pi);' 'mainForm.toLog(`(1+ 2)=${mathModule.add(1, 2)}`);' 'mainForm.toLog(`16/3=${mathModule.div(16, 3)}`);' '*/' '' 'const http = require(''http'');' 'const assert = require(''assert'');' '// set global proxy settings if client is behind a proxy' '// http.setGlobalProxyConfiguration(''''proxy.main:3249'''', ''''localhost'''');' 'let resp = http.get(''https://synopse.info/fossil/wiki/Synopse+OpenSource'');' '// check we are actually behind a proxy' '// assert.ok(resp.headers(''''via'''').startsWith(''''1.1 proxy.main''''), ''''proxy used'''');' 'let index = resp.read();' 'mainForm.toLog(index);' ) TabOrder = 0 WordWrap = False end object mResult: TMemo Left = 464 Height = 414 Top = 24 Width = 249 TabOrder = 1 end object btnEvaluate: TButton Left = 16 Height = 25 Top = 444 Width = 129 Caption = 'Evaluate selected' OnClick = btnEvaluateClick TabOrder = 2 end end