# Class LittleGhost::CodeMode::JavascriptEngine

Documentation version: Edge

Canonical HTML: https://littleghostai.org/docs/LittleGhost/CodeMode/JavascriptEngine.html

Runs model-written JavaScript in an isolated V8 context.

This optional engine uses MiniRacer. Requiring LittleGhost does not load
MiniRacer; applications opt in by requiring
`little_ghost/code_mode/javascript_engine`.

## Inheritance

`LittleGhost::CodeMode::JavascriptEngine < LittleGhost::CodeMode::Engine`

## Constants

### `DEFAULT_LIMITS`

Resource and concurrency limits applied when the application does not override
them.

## Instance methods

<a id="method-i-instructions"></a>
### `#instructions`

```ruby
#instructions(catalog:)
```

Builds JavaScript usage instructions and TypeScript declarations for
`catalog`.

<a id="method-i-language"></a>
### `#language`

```ruby
#language()
```

Returns the `:javascript` language identifier.

<a id="method-i-open_session"></a>
### `#open_session`

```ruby
#open_session(broker:, sandbox_factory:, limits: {})
```

Opens a JavaScript Session with engine defaults merged with `limits`.
Unsupported limit keys raise ArgumentError.
