All files / lib/internal heap_utils.js

100% Statements 41/41
100% Branches 5/5
100% Functions 3/3
100% Lines 41/41

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 4217x 17x 17x 17x 17x 17x 17x 17x 17x 17x 17x 17x 17x 17x 17x 14x 14x 14x 14x 14x 17x 17x 11x 11x 11x 17x 17x 12x 12x 12x 12x 12x 17x 17x 737x 737x 17x 17x 17x 17x 17x  
'use strict';
const {
  Symbol
} = primordials;
const {
  kUpdateTimer,
  onStreamRead,
} = require('internal/stream_base_commons');
const { owner_symbol } = require('internal/async_hooks').symbols;
const { Readable } = require('stream');
 
const kHandle = Symbol('kHandle');
 
class HeapSnapshotStream extends Readable {
  constructor(handle) {
    super({ autoDestroy: true });
    this[kHandle] = handle;
    handle[owner_symbol] = this;
    handle.onread = onStreamRead;
  }
 
  _read() {
    if (this[kHandle])
      this[kHandle].readStart();
  }
 
  _destroy() {
    // Release the references on the handle so that
    // it can be garbage collected.
    this[kHandle][owner_symbol] = undefined;
    this[kHandle] = undefined;
  }
 
  [kUpdateTimer]() {
    // Does nothing
  }
}
 
module.exports = {
  HeapSnapshotStream
};