11cb0ef41Sopenharmony_ci'use strict'; 21cb0ef41Sopenharmony_cirequire('../common'); 31cb0ef41Sopenharmony_ciconst assert = require('assert'); 41cb0ef41Sopenharmony_ciconst { AsyncLocalStorage } = require('async_hooks'); 51cb0ef41Sopenharmony_ci 61cb0ef41Sopenharmony_ciconst asyncLocalStorage = new AsyncLocalStorage(); 71cb0ef41Sopenharmony_ciconst outer = {}; 81cb0ef41Sopenharmony_ciconst inner = {}; 91cb0ef41Sopenharmony_ci 101cb0ef41Sopenharmony_cifunction testInner() { 111cb0ef41Sopenharmony_ci assert.strictEqual(asyncLocalStorage.getStore(), outer); 121cb0ef41Sopenharmony_ci 131cb0ef41Sopenharmony_ci asyncLocalStorage.run(inner, () => { 141cb0ef41Sopenharmony_ci assert.strictEqual(asyncLocalStorage.getStore(), inner); 151cb0ef41Sopenharmony_ci }); 161cb0ef41Sopenharmony_ci assert.strictEqual(asyncLocalStorage.getStore(), outer); 171cb0ef41Sopenharmony_ci 181cb0ef41Sopenharmony_ci asyncLocalStorage.exit(() => { 191cb0ef41Sopenharmony_ci assert.strictEqual(asyncLocalStorage.getStore(), undefined); 201cb0ef41Sopenharmony_ci }); 211cb0ef41Sopenharmony_ci assert.strictEqual(asyncLocalStorage.getStore(), outer); 221cb0ef41Sopenharmony_ci} 231cb0ef41Sopenharmony_ci 241cb0ef41Sopenharmony_ciasyncLocalStorage.run(outer, testInner); 251cb0ef41Sopenharmony_ciassert.strictEqual(asyncLocalStorage.getStore(), undefined); 26