Change Log
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[4.4.2] - 2023.07.21
Fixed
- The pointer of Adapter container's iterator cannot as array to be deconstructed.
Added
- Add
isAccessible
function to iterators for iterable containers.
[4.4.1] - 2023.06.05
Fixed
- Tree container with less than 3 items reverse iteration infinite loop
[4.4.0] - 2023.03.17
Changed
- Optimized inOrder travel function for tree container.
- Optimized
Symbol.iterator
function.
- Optimized
TreeContainer
erase
function.
- Optimized some details of deque.
- Change
reverse
and sort
returned value to this
.
[4.3.0] - 2023.01.20
Added
- Add public member
container
to Iterator
which means the container that the iterator pointed to.
Changed
- Reimplement
Queue
, separate Queue
from Deque
.
[4.2.0] - 2022.11.20
Changed
- Optimized the structure of class
TreeNodeEnableIndex
.
- Change the
iterator access denied
error message to reduce the packing size.
- Change the internal storage of the hash container to the form of a linked list, traversing in insertion order.
- Standardize hash container. Make it extends from
Container
and add general functions.
- Refactor
LinkList
to do optimization.
Added
- Add public
length
property to all the container.
- Add returned value to
pop
function including popBack
and popFront
to all the container which has such function.
- Add returned value to
eraseElementByKey
which means whether erase successfully.
- Add returned value to
push
or insert
function which means the size of the container.
Fixed
- Fixed wrong error type when
updateKeyByIterator
.
- Fixed wrong iterator was returned when erase tree reverse iterator.
[4.2.0-beta.1] - 2022.11.06
Changed
- Remove all the arrow function to optimize.
- Modify
HashContainer
implementation to optimize.
[4.2.0-beta.0] - 2022.10.30
Added
- Add
ts
sourcemap for debug mode.
- Add
this
param for forEach
function.
- Support single package umd build.
Changed
- Changed the packaging method of isolation packages release and the method of the member export.
[4.1.5] - 2022.09.30
Added
- Add
find
, remove
, updateItem
and toArray
functions to PriorityQueue
.
- Support single package release (use scope @js-sdsl).
[4.1.5-beta.1] - 2022.09.23
Fixed
- Get wrong tree index when size is 0.
[4.1.5-beta.0] - 2022.09.23
Added
- Add
index
property to tree iterator which represents the sequential index of the iterator in the tree.
Changed
- Minimal optimization with private properties mangling, macro inlining and const enum.
- Private properties are now mangled.
- Remove
checkWithinAccessParams
function.
- Constants of
HashContainer
are moved to HashContainerConst
const enum.
- The iteratorType parameter in the constructor now changed from
boolean
type to IteratorType
const enum type.
- The type of
TreeNode.color
is now changed from boolean
to TreeNodeColor
const enum.
- Turn some member exports into export-only types.
Fixed
- Fixed wrong iterator error message.
[4.1.4] - 2022.09.07
Added
Changed
- Optimize hash container.
- Abstracting out the hash container.
Fixed
- Fixed tree get height function return one larger than the real height.
- Tree-shaking not work in ES module.
Queue
and Deque
should return undefined
when container is empty.
[4.1.4-beta.0] - 2022.08.31
Added
- Add function update key by iterator.
- Add iterator copy function to get a copy of itself.
- Add insert by iterator hint function in tree container.
Changed
- Changed OrderedMap's iterator pointer get from
Object.defineProperty'
to Proxy
.
- Improve iterator performance by remove some judgment.
- Change iterator type description from
normal
and reverse
to boolean.
[4.1.2-beta.0] - 2022.08.27
Added
- Make
SequentialContainer
and TreeBaseContainer
export in the index.
Changed
- Change rbTree binary search from recursive to loop implementation (don't effect using).
- Reduce memory waste during deque initialization.
Fixed
- Fixed priority queue not dereference on pop.
[4.1.1] - 2022.08.23
Fixed
- Forgot to reset root node on rotation in red-black tree delete operation.
- Fix iterator invalidation after tree container removes iterator.
[4.1.0] - 2022.08.21
Changed
- Change some functions from recursive to loop implementation (don't effect using).
- Change some iterator function parameter type.
- Change commonjs target to
es6
.
- Change
Deque
from sequential queue to circular queue.
- Optimize so many places (don't affect using).
Fixed
[4.0.3] - 2022-08-13
Changed
- Change
if (this.empty())
to if (!this.length)
.
- Change some unit test.
- Change class type and optimized type design.
Fixed
- Fix can push undefined to deque.
[4.0.0] - 2022-07-30
Changed
- Remove InternalError error as much as possible (don't affect using).
- Change
HashSet
api eraseElementByValue
's name to eraseElementByKey
.
- Change some unit tests to improve coverage (don't affect using).
[4.0.0-beta.0] - 2022-07-24
Added
- Complete test examples (don't effect using).
- The error thrown is standardized, you can catch it according to the error type.
Changed
- Refactor all container from function to class (don't affect using).
- Abstracting tree containers and hash containers, change
Set
's and Map
's name to OrderedSet
and OrderedMap
to distinguish it from the official container.
- Change
OrderedSet
api eraseElementByValue
's name to eraseElementByKey
.
Fixed
[3.0.0-beta.0] - 2022-04-29
Added
- Bidirectional iterator is provided for all containers except Stack, Queue, HashSet and HashMap.
- Added begin, end, rBegin and rEnd functions to some containers for using iterator.
- Added
eraseElementByIterator
function.
Changed
- Changed Pair type
T, K
to K, V
(don't affect using).
- Changed
find
, lowerBound
, upperBound
, reverseLowerBound
and reverseUpperBound
function's returned value to Iterator
.
Fixed
- Fixed an error when the insert value was 0.
- Fixed the problem that the lower version browser does not recognize symbol Compilation error caused by iterator.