10000 WIP empty unwrapping · immutable-js/immutable-js@80a3e66 · GitHub
[go: up one dir, main page]

Skip to content

Commit 80a3e66

Browse files
committed
WIP empty unwrapping
1 parent f83e384 commit 80a3e66

File tree

4 files changed

+25
-16
lines changed

4 files changed

+25
-16
lines changed

src/List.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,8 @@ ListPrototype['@@transducer/result'] = function (obj) {
257257
return obj.asImmutable();
258258
};
259259

260+
ListPrototype.__empty = emptyList;
261+
260262
class VNode {
261263
constructor(array, ownerID) {
262264
this.array = array;

src/Map.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,8 @@ MapPrototype['@@transducer/result'] = function (obj) {
185185
return obj.asImmutable();
186186
};
187187

188+
MapPrototype.__empty = emptyMap;
189+
188190
// #pragma Trie Nodes
189191

190192
class ArrayMapNode {

src/OrderedMap.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,11 @@ export class OrderedMap extends Map {
9393

9494
OrderedMap.isOrderedMap = isOrderedMap;
9595

96-
OrderedMap.prototype[IS_ORDERED_SYMBOL] = true;
97-
OrderedMap.prototype[DELETE] = OrderedMap.prototype.remove;
96+
const OrderedMapPrototype = OrderedMap.prototype;
97+
OrderedMapPrototype[IS_ORDERED_SYMBOL] = true;
98+
OrderedMapPrototype[DELETE] = OrderedMapPrototype.remove;
99+
100+
OrderedMapPrototype.__empty = emptyOrderedMap;
98101

99102
function makeOrderedMap(map, list, ownerID, hash) {
100103
const omap = Object.create(OrderedMap.prototype);

src/Stack.js

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,21 @@ export class Stack extends IndexedCollection {
192192
}
193193
}
194194

195+
function makeStack(size, head, ownerID, hash) {
196+
const map = Object.create(StackPrototype);
197+
map.size = size;
198+
map._head = head;
199+
map.__ownerID = ownerID;
200+
map.__hash = hash;
201+
map.__altered = false;
202+
return map;
203+
}
204+
205+
let EMPTY_STACK;
206+
function emptyStack() {
207+
return EMPTY_STACK || (EMPTY_STACK = makeStack(0));
208+
}
209+
195210
Stack.isStack = isStack;
196211

197212
const StackPrototype = Stack.prototype;
@@ -210,17 +225,4 @@ StackPrototype['@@transducer/result'] = function (obj) {
210225
return obj.asImmutable();
211226
};
212227

213-
function makeStack(size, head, ownerID, hash) {
214-
const map = Object.create(StackPrototype);
215-
map.size = size;
216-
map._head = head;
217-
map.__ownerID = ownerID;
218-
map.__hash = hash;
219-
map.__altered = false;
220-
return map;
221-
}
222-
223-
let EMPTY_STACK;
224-
function emptyStack() {
225-
return EMPTY_STACK || (EMPTY_STACK = makeStack(0));
226-
}
228+
StackPrototype.__empty = emptyStack;

0 commit comments

Comments
 (0)
0