Skip to content
Taritsyn edited this page Mar 7, 2024 · 3 revisions

JavaScriptEngineSwitcher.Vroom contains a VroomJsEngine adapter (wrapper for the VroomJs version 1.2.3 with support of V8 version 3.17.16.2).

For correct working of the VroomJs on Windows require the Visual C++ Redistributable for Visual Studio 2012 and the Microsoft Visual C++ 2015 Redistributable.

VroomJs package does not contains a native assemblies for Linux and OS X, but you can try to build them by using the following instruction from official repository.

Engine settings

You can specify a settings of JS engine during its registration:

engineSwitcher.EngineFactories
    .AddVroom(new VroomSettings
    {
        MaxYoungSpaceSize = 4194304,
        MaxOldSpaceSize = 8388608
    })
    ;

If you manually create an instance of JS engine, then you can pass settings via the constructor:

IJsEngine engine = new VroomJsEngine(
    new VroomSettings
    {
        MaxYoungSpaceSize = 4194304,
        MaxOldSpaceSize = 8388608
    }
);

Consider in detail properties of the VroomSettings class:

Property name Data type Default value Description
MaxYoungSpaceSize Int32 -1 Maximum size of the young object heap in bytes.
MaxOldSpaceSize Int32 -1 Maximum size of the old object heap in bytes.

Known issues

Currently, VroomJs has the following issues, that do not allow it to fully comply with requirements of the JavaScript Engine Switcher:

  1. Not supported undefined type.
  2. Errors when calling methods of embedded objects and types, that have several overloaded versions.
  3. Errors when accessing to the fields of embedded objects.
  4. Inability to embed the instances of delegates.
  5. There's no method, that starts the garbage collection.