Does the JS scripting require Java (JRE/JDK) to be installed?

No, no pre-requirements are needed for JS scripting.

Does the JS engine support modern Javascript like modules, classes, etc.?

Yes as per Javascript standards with the limitation of not running in a client side (e.g. browsers) environment, especially when referring to file inclusions and access rights.

What is the JS ECMAScript version supported?

Full ECMA 5.1 compliance with partially ECMA 6.0 implementation.

What .NET components are supported?

Full base CLR namespace and classes with support for objects, properties, methods, delegates and anonymous objects.

Follow this conversion table for data type conversion JS->CLR:

  • Primitive values
  • Object -> expando objects (IDictionary<string, string> and dynamic)
  • Array -> object[]
  • Date -> DateTime
  • number -> double
  • string -> string
  • boolean -> bool
  • Regexp -> RegExp
  • Function -> Delegate

Is JS scripting running natively at 64bits?

Yes while VBS runs emulated in 32bits COM environment.

What does it happen if I have an exception in my JS?

Error will logged in the process logs with details of the error, compared to current VBS 64 bits which outputs just a generic COM component.

Can I use JS debugger functions into my JS code?

No, debugging is not supported because JS code is running in a context of a Windows Service where interactive actions are not allowed and break points can produce unexpected general behaviors.

Can I use Threads in my JS code?

No, threading is not supported because Scanshare processing engine is a synchronous FIFO queue and async operations are not handled while the processing engine waits for the script execution to proceed to the next workflow step.