faster object type lookup during deserialization

This commit is contained in:
Tobias Koppers 2019-11-13 12:18:04 +01:00
parent f6f5364ad1
commit b086bfbcc6
1 changed files with 4 additions and 3 deletions

View File

@ -397,7 +397,7 @@ class ObjectMiddleware extends SerializerMiddleware {
currentPos++;
};
let currentPosTypeLookup = 0;
const objectTypeLookup = new Map();
const objectTypeLookup = [];
const result = [];
const ctx = {
read() {
@ -427,7 +427,7 @@ class ObjectMiddleware extends SerializerMiddleware {
let serializer;
if (typeof request === "number") {
serializer = objectTypeLookup.get(currentPosTypeLookup - request);
serializer = objectTypeLookup[currentPosTypeLookup - request];
} else {
if (typeof request !== "string") {
throw new Error(
@ -456,7 +456,8 @@ class ObjectMiddleware extends SerializerMiddleware {
serializer = ObjectMiddleware.getDeserializerFor(request, name);
objectTypeLookup.set(currentPosTypeLookup++, serializer);
objectTypeLookup.push(serializer);
currentPosTypeLookup++;
}
try {
const item = serializer.deserialize(ctx);