---
title: "init(virtualMachine:)"
framework: javascriptcore
role: symbol
role_heading: Initializer
path: "javascriptcore/jscontext/init(virtualmachine:)"
---

# init(virtualMachine:)

Creates a new JavaScript context associated with a specific virtual machine.

## Declaration

```swift
init!(virtualMachine: JSVirtualMachine!)
```

## Parameters

- `virtualMachine`: The virtual machine with which to associate the new context.

## Return Value

Return Value A new JavaScript context.

## Discussion

Discussion By default, each context has an independent virtual machine (a JSVirtualMachine object). You cannot pass JavaScript values between contexts in different virtual machines. Use this initializer to create a context that shares its virtual machine with other JavaScript contexts to allow passing JSValue objects between those contexts.

## See Also

### Creating JavaScript contexts

- [init()](javascriptcore/jscontext/init().md)
