| 'use strict'; |
| |
| require('../common'); |
| const assert = require('assert'); |
| const vm = require('vm'); |
| const { AsyncLocalStorage } = require('async_hooks'); |
| |
| // Regression test for https://github.com/nodejs/node/issues/38781 |
| |
| const context = vm.createContext({ |
| AsyncLocalStorage, |
| assert |
| }); |
| |
| vm.runInContext(` |
| const storage = new AsyncLocalStorage() |
| async function test() { |
| return storage.run({ test: 'vm' }, async () => { |
| assert.strictEqual(storage.getStore().test, 'vm'); |
| await 42; |
| assert.strictEqual(storage.getStore().test, 'vm'); |
| }); |
| } |
| test() |
| `, context); |
| |
| const storage = new AsyncLocalStorage(); |
| async function test() { |
| return storage.run({ test: 'main context' }, async () => { |
| assert.strictEqual(storage.getStore().test, 'main context'); |
| await 42; |
| assert.strictEqual(storage.getStore().test, 'main context'); |
| }); |
| } |
| test(); |