slice.js 890 B

123456789101112131415161718192021222324252627282930313233343536
  1. var B = require('../').Buffer
  2. var test = require('tape')
  3. test('modifying buffer created by .slice() modifies original memory', function (t) {
  4. if (!B._useTypedArrays) return t.end()
  5. var buf1 = new B(26)
  6. for (var i = 0 ; i < 26 ; i++) {
  7. buf1[i] = i + 97 // 97 is ASCII a
  8. }
  9. var buf2 = buf1.slice(0, 3)
  10. t.equal(buf2.toString('ascii', 0, buf2.length), 'abc')
  11. buf2[0] = '!'.charCodeAt(0)
  12. t.equal(buf1.toString('ascii', 0, buf2.length), '!bc')
  13. t.end()
  14. })
  15. test('modifying parent buffer modifies .slice() buffer\'s memory', function (t) {
  16. if (!B._useTypedArrays) return t.end()
  17. var buf1 = new B(26)
  18. for (var i = 0 ; i < 26 ; i++) {
  19. buf1[i] = i + 97 // 97 is ASCII a
  20. }
  21. var buf2 = buf1.slice(0, 3)
  22. t.equal(buf2.toString('ascii', 0, buf2.length), 'abc')
  23. buf1[0] = '!'.charCodeAt(0)
  24. t.equal(buf2.toString('ascii', 0, buf2.length), '!bc')
  25. t.end()
  26. })