diff options
author | 2022-10-20 21:40:30 -0700 | |
---|---|---|
committer | 2022-10-21 01:07:49 -0700 | |
commit | 97ccbc189a52fe2e497f2ad20ebf86a83b758d14 (patch) | |
tree | 82de0c078d2326389ebf17ce76a9dfe9869b7848 /src/bun.js/builtins/js/StreamInternals.js | |
parent | 0a2c101c28461e5aa7b20dca7cba50c52716b8e3 (diff) | |
download | bun-97ccbc189a52fe2e497f2ad20ebf86a83b758d14.tar.gz bun-97ccbc189a52fe2e497f2ad20ebf86a83b758d14.tar.zst bun-97ccbc189a52fe2e497f2ad20ebf86a83b758d14.zip |
micro-optimize
Diffstat (limited to 'src/bun.js/builtins/js/StreamInternals.js')
-rw-r--r-- | src/bun.js/builtins/js/StreamInternals.js | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/bun.js/builtins/js/StreamInternals.js b/src/bun.js/builtins/js/StreamInternals.js index 5e8e4a119..5e447c29c 100644 --- a/src/bun.js/builtins/js/StreamInternals.js +++ b/src/bun.js/builtins/js/StreamInternals.js @@ -117,6 +117,8 @@ function validateAndNormalizeQueuingStrategy(size, highWaterMark) @linkTimeConstant function createFIFO() { "use strict"; + var slice = @Array.prototype.slice; + class Denqueue { constructor() { this._head = 0; @@ -125,6 +127,11 @@ function createFIFO() { this._capacityMask = 0x3; this._list = @newArrayWithSize(4); } + + _head; + _tail; + _capacityMask; + _list; size() { if (this._head === this._tail) return 0; @@ -141,12 +148,12 @@ function createFIFO() { } shift() { - var head = this._head; - if (head === this._tail) return @undefined; - var item = this._list[head]; - @putByValDirect(this._list, head, @undefined); - this._head = (head + 1) & this._capacityMask; - if (head < 2 && this._tail > 10000 && this._tail <= this._list.length >>> 2) this._shrinkArray(); + var { _head: head, _tail, _list, _capacityMask } = this; + if (head === _tail) return @undefined; + var item = _list[head]; + @putByValDirect(_list, head, @undefined); + head = this._head = (head + 1) & _capacityMask; + if (head < 2 && _tail > 10000 && _tail <= _list.length >>> 2) this._shrinkArray(); return item; } @@ -181,7 +188,7 @@ function createFIFO() { for (var i = 0; i < _tail; i++) @putByValDirect(array, j++, list[i]); return array; } else { - return @Array.prototype.slice.@call(list, this._head, this._tail); + return slice.@call(list, this._head, this._tail); } } |