I'm looking for a method to deeply determine whether or not an object consists of nothing but empty objects.

For example, that method should return true for each one of the following objects:

```
const obj1 = {};

const obj2 = {
    a: {}
    b: {}
    c: {}
};

const obj3 = {
    a: {
        a1: {}
    },
    b: {
        b1: {},
        b2: {}
    },
    c: {
        c1: {},
        c2: {},
        c3: {}
    }
};

```

And it should return false for the following object:

```
const obj4 = {
    a: {
        a1: {}
    },
    b: {
        b1: {},
        b2: {}
    },
    c: {
        c1: {},
        c2: {},
        c3: {
            x: 5
        }
    }
};

```

The simplest method I came up with is:

```
function isEmpty(object) {
    return typeof object === 'object' &&
           Object.keys(object).every(key => isEmpty(object[key]));
}

```

I couldn't find any counterexamples, so I'd like to ask if there are any flaws in this method.