text: #include "stream_coder.h"
  
  StreamCoder::StreamCoder() {
  }
  
  StreamCoder::~StreamCoder() {
    size_t n_chunks = pending_output.size();
    for (size_t i = 0; i < n_chunks; i++) {
      alloc.Free(pending_output[i]);
    }
  
    alloc.ReportMemoryToV8();
  }
  
  Local<Array> StreamCoder::PendingChunksAsArray() {
    size_t n_chunks = pending_output.size();
    Local<Array> chunks = Nan::New<Array>(n_chunks);
  
    for (size_t i = 0; i < n_chunks; i++) {
      uint8_t* current = pending_output[i];
      Allocator::AllocatedBuffer* buf_info = Allocator::GetBufferInfo(current);
      Nan::Set(chunks, i, Nan::NewBuffer(reinterpret_cast<char*>(current),
                                         buf_info->size,
                                         Allocator::NodeFree,
                                         NULL).ToLocalChecked());
    }
    pending_output.clear();
  
    return chunks;
  }
  