function getKeysOfObject()

in lib/index.ts [82:98]


function getKeysOfObject(obj: object) {
    let keys: string[] = [];
    let chain: {} = obj;
    do {
        if (chain == null) break;
        keys = keys.concat(Object.getOwnPropertyNames(chain));
        chain = Object.getPrototypeOf(chain);
    } while (chain !== Object.prototype && chain !== Function.prototype);
    keys = Array.from(new Set(keys));
    keys = keys.filter(s => isVisitableName(s));
    if (typeof obj === 'function') {
        keys = keys.filter(k => reservedFunctionProperties.indexOf(k) < 0);
    }

    keys.sort();
    return keys;
}