Lenny Maiorani
d00b79568f
Libraries: Use default constructors/destructors in LibJS
...
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#cother-other-default-operation-rules
"The compiler is more likely to get the default semantics right and
you cannot implement these functions better than the compiler."
2022-03-16 16:19:40 +00:00
davidot
45646eee43
LibJS: Fix Map Iterators when elements are deleted during iteration
...
Before this would assume that the element found in operator++ was still
valid when dereferencing it in operator*.
Since any code can have been run since that increment this is not always
valid.
To further simplify the logic of the iterator we no longer store the
index in an optional.
2022-02-10 14:09:39 +00:00
Ali Mohammad Pur
4a73ec07c5
LibJS: Make Map iterators independent of the underlying hashmap
...
This implements ordered maps as a pair of an RBTree for key order, and
an underlying unordered hash map for storage.
Fixes (part of) #11004 .
2022-02-09 20:57:41 +00:00
Andreas Kling
d42d655853
LibJS+LibWeb+Spreadsheet: Upcall visit_edges() via Base typedef
...
Let's use Base::visit_edges() when calling the base class, to prevent
accidentally skipping over anyone in the inheritance chain.
2021-09-11 14:10:11 +02:00
Idan Horowitz
a96ac8bd56
LibJS: Add the Map built-in object
2021-06-13 00:33:18 +01:00