# node:vm

O módulo `node:vm` compila e executa código JavaScript dentro de contextos de máquina virtual, como descreve a [documentação do vm do Node.js](https://nodejs.org/api/vm.html). No Azion Runtime, `import vm from "node:vm"` faz o build e carrega, em uma function com deploy feito e com `azion dev`. O módulo exporta `Script`, `compileFunction`, `constants`, `createContext`, `createScript`, `isContext`, `measureMemory`, `runInContext`, `runInNewContext` e `runInThisContext`.

Os métodos que executam código em um contexto, `runInThisContext`, `runInNewContext`, `runInContext` e `Script.runInThisContext`, lançam um `Error` em vez de executar o código. A mensagem é a mesma em uma function com deploy feito e com `azion dev`.

---

## Métodos

A tabela lista cada método que executa código em um contexto e o erro que ele lança:

| Chamada                             | Resultado                                                                                                            |
| ----------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `vm.runInThisContext(code)`         | Lança `Error: [unenv] vm.runInThisContext is not implemented yet!`                                                   |
| `vm.runInNewContext(code, context)` | Lança `Error: [unenv] vm.runInNewContext is not implemented yet!`                                                    |
| `vm.runInContext(code, context)`    | Lança `Error: [unenv] vm.runInContext is not implemented yet!` com um contexto que `vm.createContext()` retornou     |
| `script.runInThisContext()`         | Lança `Error: [unenv] Script.runInThisContext is not implemented yet!` em um script criado com `new vm.Script(code)` |

---

## Recursos relacionados

- [APIs do Node.js](/pt-br/documentacao/devtools/runtime/node.md): Todos os módulos do Node.js que o Azion Runtime resolve e como cada um se comporta.
- [Use APIs do Node.js com polyfills](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/functions-e-runtime/use-polyfills.md): Como o build resolve APIs do Node.js por meio de polyfills, mostrado em um projeto JavaScript.
- [node:module](/pt-br/documentacao/devtools/runtime/node/module.md): As APIs do sistema de módulos e quais dos membros delas uma function pode chamar.
- [Padrões web](/pt-br/documentacao/devtools/runtime/api-reference/web-standards.md): Os padrões JavaScript que o Azion Runtime segue e as formas de código que ele recusa.
