1234567891011121314151617181920212223242526272829 |
- export default sliceChunks
-
- import assert from 'assert'
-
- function sliceChunks(chunks, token) {
- var startIndex = token.start._index
- var startBufferIndex = token.start._bufferIndex
- var endIndex = token.end._index
- var endBufferIndex = token.end._bufferIndex
- var view
-
- if (startIndex === endIndex) {
- assert(endBufferIndex > -1, 'expected non-negative end buffer index')
- assert(startBufferIndex > -1, 'expected non-negative start buffer index')
- view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]
- } else {
- view = chunks.slice(startIndex, endIndex)
-
- if (startBufferIndex > -1) {
- view[0] = view[0].slice(startBufferIndex)
- }
-
- if (endBufferIndex > 0) {
- view.push(chunks[endIndex].slice(0, endBufferIndex))
- }
- }
-
- return view
- }
|