| 'use strict'; |
| const common = require('../common'); |
| const { |
| assertDetailedShape, |
| expectExperimentalWarning |
| } = require('../common/measure-memory'); |
| const vm = require('vm'); |
| const assert = require('assert'); |
| |
| expectExperimentalWarning(); |
| { |
| const arr = []; |
| const count = 10; |
| for (let i = 0; i < count; ++i) { |
| const context = vm.createContext({ |
| test: new Array(100).fill('foo') |
| }); |
| arr.push(context); |
| } |
| // Check that one more context shows up in the result |
| vm.measureMemory({ mode: 'detailed', execution: 'eager' }) |
| .then(common.mustCall((result) => { |
| // We must hold on to the contexts here so that they |
| // don't get GC'ed until the measurement is complete |
| assert.strictEqual(arr.length, count); |
| assertDetailedShape(result, count); |
| })); |
| } |