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 9328x 9328x 41x 41x 31330x 22002x 22002x 31330x 31330x 41x 41x 29458x 29458x 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 };