function commonKeys() {
	var nargs;
	var keys;
	var arg;
	var ptr;
	var N;
	var i;
	var j;

	nargs = arguments.length;
	if ( nargs < 2 ) {
		throw new Error( 'insufficient arguments. Must provide at least two objects.' );
	}
	keys = objectKeys( arguments[ 0 ] );
	N = keys.length;

	for ( i = 1; i < nargs; i++ ) {
		arg = arguments[ i ];
		ptr = 0;
		for ( j = 0; j < N; j++ ) {
			if ( hasOwnProp( arg, keys[ j ] ) ) {
				keys[ ptr ] = keys[ j ];
				ptr += 1;
			}
		}
		N = ptr;
	}
	keys.length = N;
	return keys;
}
Returns the common own property names of two or more objects.

@param {*} obj1 - first object
@param {*} obj2 - second object
@param {...*} [obj] - additional objects
@throws {Error} must provide at least two objects
@returns {(StringArray|EmptyArray)} common keys

@example
var obj = {
    'a': 1,
    'b': 2,
    'c': 3
};

var obj2 = {
    'a': 1,
    'b': 2
};

var keys = commonKeys( obj, obj2 );
// returns [ 'a', 'b' ]

@example
var obj1 = {
    'a': 1,
    'b': 2,
    'c': 3
};

var obj2 = {
    'a': 1,
    'b': 2
};

var obj3 = {
    'a': 1,
};

var keys = commonKeys( obj1, obj2, obj3 );
// returns [ 'a' ]