All files / src/Ice HashUtil.js

81.57% Statements 31/38
100% Branches 8/8
80% Functions 4/5
81.57% Lines 31/38

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 3941x 41x 41x 41x 41x 41x 8933x 8933x 41x 41x 30137x 21204x 21204x 30137x 30137x 41x 41x 28293x 28293x 41x 41x 588x 588x 588x 588x 588x 41x 41x               41x 41x 41x  
// Copyright (c) ZeroC, Inc.
 
import { StringUtil } from "./StringUtil.js";
 
class HashUtil {
    static addBoolean(h, b) {
        return ((h << 5) + h) ^ (b ? 0 : 1);
    }
 
    static addString(h, str) {
        if (str !== undefined && str !== null) {
            h = ((h << 5) + h) ^ StringUtil.hashCode(str);
        }
        return h;
    }
 
    static addNumber(h, num) {
        return ((h << 5) + h) ^ num;
    }
 
    static addHashable(h, obj) {
        if (obj !== undefined && obj !== null) {
            h = ((h << 5) + h) ^ obj.hashCode();
        }
        return h;
    }
 
    static addArray(h, arr, hashCode) {
        if (arr !== undefined && arr !== null) {
            for (let i = 0; i < arr.length; ++i) {
                h = hashCode(h, arr[i]);
            }
        }
        return h;
    }
}
 
export { HashUtil };